# IQ1の大変さ
みなさんおはようございます、食塩結晶です。IQが1。
この記事は[IQ1 Advent Calendar 2018](https://adventar.org/calendars/3160)の7日目の記事です
こういう記事を書くのは初めてなので緊張してます。
なんならブログも書いたことないし。そもそも持ってないし。
どきどきどきどきわくわく〜〜
さて、私が書くのは"IQ1の大変さ"についてです
# IQとは何か
IQが知能指数(Intelligence Quotient)のことであることはご存知のはずです。
知能検査から算出される結果の一つですね。
細かいことはいっぱいありますがそこは本筋と関係ないのですっとばします。細かい事が知りたい人は[wikipediaさん](https://ja.wikipedia.org/wiki/%E7%9F%A5%E8%83%BD%E6%8C%87%E6%95%B0)でも見といてください
IQは平均100、標準偏差15程度の標準得点で表されます。偏差値と似たようなものです。
人間の数が十分にいる時、分布は正規分布となります。
IQが100だと普通の人間程度の知能を持っているとされ、それを超えると人より優れ、下回ると人より劣っているという評価が与えられます。
ちなみに平均100標準偏差15で正規分布を書くと以下のようになります

# IQ1とは
人間が十分にいて分布が正規分布となっている時、IQ1というのはかなり希少価値が高いです。IQ199と同じ希少さを持ちます。こわ。ヤクザじゃん。ちなみに過去に記録された最高のIQは228らしいので望みがある
## 式変形
ここで終わっては何も面白くないので実際に求めていきましょうか。
中央値=平均値: $\mu = 100$、標準偏差: $\sigma = 15$ とします。
正規分布の確率密度関数は
$$
f(x)= \frac{1}{\sqrt{2\pi\sigma^2}} exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
$$
なので、IQ1の人をIQ1~2の間にいる人とすると(真にIQ1の人はいないので少数以下切り捨てだと考える)
$$
\begin{align}
F(2) - F(1) &= P(x \leq 2) - P(x \leq 1) \\
&= \int_{-\infty}^2 f(t) dt - \int_{-\infty}^1 f(t)dt\\
&= \int_1^2 f(t) dt
\end{align}
$$
ここで気づいた。$f(t)$ をそのまま積分するのはめんどい
というわけで
$z = \frac{t-\mu}{\sqrt{2\sigma^2}}$ とおくと, $dz = \frac{1}{\sqrt{2\sigma^2}}dt$ より
$$
\begin{align}
\int_1^2 f(t) dt &= \int_1^2 \frac{1}{\sqrt{2\pi\sigma^2}} exp\left(-\frac{(t-\mu)^2}{2\sigma^2}\right) dt \\
&= \int_{\frac{1-\mu}{\sqrt{2\sigma^2}}}^{\frac{2-\mu}{\sqrt{2\sigma^2}}} \frac{1}{\sqrt{2\pi\sigma^2}} exp\left(-z^2\right) \sqrt{2\sigma^2} dz \\
&=\int_{\frac{1-\mu}{\sqrt{2\sigma^2}}}^{\frac{2-\mu}{\sqrt{2\sigma^2}}} \frac{1}{\sqrt{\pi}} exp\left(-z^2\right) dz \\
\end{align}
$$
なんかテイラー展開でいけそうな気持ちになったけど、よく考えろ。積分区間は
$$
\begin{align}
\frac{1-\mu}{\sqrt{2\sigma^2}} &= \frac{1-100}{\sqrt{2 * 15^2}}\\
&= \frac{-99}{\sqrt{450}}\\
&\sim -4.66690475583\\
\frac{2-\mu}{\sqrt{2\sigma^2}} &= \frac{-98}{\sqrt{450}}\\
&\sim -4.61976430375
\end{align}
$$
なので、これだと第何項までやればテイラー展開の誤差が無視できるのかわからん(テイラー展開の近似についてはこの[スライド](https://www.slideshare.net/HideoHirose/taylora) が分かりやすかったです。ちなみにこれによると70項ぐらいまでやれば誤差はそれなりに小さくなるぽい)
手計算は無理だな…………
## PCに計算させる
手計算は無理だったのでPCにぶん投げる。
面倒だったし重い計算でもないのでpythonでえいっと
```python:calcIQ1.py
from scipy import integrate
import math
mu = 100
sigma = 15
def calcDistribution(z):
return 1/math.sqrt(math.pi) * math.exp(-1 * (z**2))
lower = (1-mu)/math.sqrt(2*(sigma**2))
upper = (2-mu)/math.sqrt(2*(sigma**2))
print(integrate.quad(calcDistribution, lower, upper))
```
で結果が
```
(1.1602993826693558e-11, 1.2881910900978742e-25)
```
これは値が1.1602993826693558e-11で推定誤差が1.2881910900978742e-25ということ。まあ誤差は10^14違うので無視していいデショ
ぐぐったら2015年ぐらいで世界人口が73億人ぐらいになってるらしい。え、いつの間にそんなに増えてたの。僕が小学生の時63億人とかじゃなかった?人間の数多くない?
つまりは
$$
7.3 * 10^9 * 1.1602993826693558 * 10^{-11} \sim 0.08470185493
$$
<div style="text-align: center;">
<font size="5">
<b>一人もおらんやんけ!!!!!!!</b>
</font>
</div>
まじかよ。一人ぐらいいると思ってた。一人どころが0.1人もいないじゃん嘘でしょ。IQ1は偽物なのか?
## IQを1にする方法
このままだと"伝説のIQ1 ちゃっく"(ゾンビランドサガ風)になってしまうし、他の人はIQ1を名乗れない。なので無理やりIQを1にする方法を考える
多分IQは複数の軸で点数を出して、それを1次元化することで算出してるんだと思う。のだけれど考えるのは面倒なので偏差値と同じようにある点数から割り出されるものだと考える。
100点満点のテストをn人が受けて、n-1人が100点で僕一人だけ0点の時に、僕の偏差値はいくつ?というお話だ。今回はIQなので、平均100、標準偏差15にしなければいけない。なので、IQ $T_i$は
$$
\begin{align}
T_i = \frac{15(x_i - \mu_x)}{\sigma_x} + 100
\end{align}
$$
また、平均と偏差は
$$
\begin{align}
\mu_x &= \frac{1}{n} \sum x_i\\
\sigma_x &= \sqrt{\frac{1}{n} \sum(x_i-\mu_x)^2}\\
&= \sqrt{\frac{1}{n} \sum x_i^2 - \mu_x^2}
\end{align}
$$
なので、
$$
\begin{align}
\mu_x &= \frac{1}{n} \sum x_i\\
&= \frac{1}{n}(100*(n-1)+0*1)\\
&= 100\frac{n-1}{n}\\
\sigma_x &= \sqrt{\frac{1}{n} \sum x_i^2 - \mu_x^2}\\
&=\sqrt{\frac{1}{n}(100^2*(n-1)+0^2*1)-\mu_x^2}\\
&=\sqrt{100^2\frac{n-1}{n}-100^2 \left( \frac{n-1}{n} \right)^2 }\\
&= \frac{100}{n}\sqrt{n(n-1)-(n-1)^2}\\
&= 100\frac{\sqrt{n-1}}{n}
\end{align}
$$
よって、僕のIQは
$$
\begin{align}
T_i &= \frac{15(x_i - \mu_x)}{\sigma_x} + 100\\
&= \frac{15(0-100\frac{n-1}{n})}{100\frac{\sqrt{n-1}}{n}} + 100\\
&= -15 \sqrt{n-1} + 100
\end{align}
$$
これを1にすればいいので
$$
\begin{align}
-15 \sqrt{n-1} + 100 &= 1\\
15 \sqrt{n-1} &= 99\\
\sqrt{n-1} &= \frac{33}{5}\\
n-1 &= \frac{1089}{25}\\
n &= \frac{1114}{25}\\
&= 44.56
\end{align}
$$
45人クラスで44人が100点を取り僕が0点だとIQが1!!
とまで書いたはいいけど、世の中にはIQ1の人間はいっぱいいる。少なくともAdCに参加している人ぐらいはいる。ので、ちょっと一般化
100点満点のテストをn人が受けて、n-m人が100点でm人が0点の時に、0点の偏差値はいくつ?
なので、
$$
\begin{align}
\mu_x &= \frac{1}{n} \sum x_i\\
&= \frac{1}{n}(100*(n-m)+0*m)\\
&= 100\frac{n-m}{n}\\
\sigma_x &= \sqrt{\frac{1}{n} \sum x_i^2 - \mu_x^2}\\
&=\sqrt{\frac{1}{n}(100^2*(n-m)+0^2*m)-\mu_x^2}\\
&=\sqrt{100^2\frac{n-m}{n}-100^2 \left( \frac{n-m}{n} \right)^2 }\\
&= \frac{100}{n}\sqrt{n(n-m)-(n-m)^2}\\
&= 100\frac{\sqrt{m}\sqrt{n-m}}{n}
\end{align}
$$
よって、0点の人のIQは
$$
\begin{align}
T_i &= \frac{15(x_i - \mu_x)}{\sigma_x} + 100\\
&= \frac{15(0-100\frac{n-m}{n})}{100\frac{\sqrt{m}\sqrt{n-m}}{n}} + 100\\
&= -15 \frac{\sqrt{n-m}}{\sqrt{m}}+100\\
\end{align}
$$
これを1にすればいいので
$$
\begin{align}
-15 \frac{\sqrt{n-m}}{\sqrt{m}}+100 &= 1\\
15 \frac{\sqrt{n-m}}{\sqrt{m}} &= 99\\
\frac{\sqrt{n-m}}{\sqrt{m}} &= \frac{33}{5}\\
\frac{n-m}{m} &= \frac{1089}{25}\\
n &= \frac{1089}{25}m + m
\end{align}
$$
IQ1AdCに参加している人間の数は40人ぐらいなので、m=40にすると、
$$
\begin{align}
n &= \frac{1089}{25}m + m\\
&= \frac{1089}{25}40 + 40\\
&= 1782.4
\end{align}
$$
1782人のうち1742人が100点を取ればIQが1!!!!
え、これ結構無理じゃない?
# 結論
IQ1はかなり大変
## おまけ
みんな[ARIA](http://amzn.asia/d/3RfKIGv)読んで。火星行きたい。ヴェネツィアでもいい。温泉も行きたい
これ最初gistに上げようと思ってたんだけど、gistだとmarkdownの数式を画像に置き換えなければいけなくて、それはさすがに面倒になってHackMdになった