Jun. 12th, 2009

thedeemon: (Default)
У современных IQ тестов есть примечательное свойство. Они состоят из набора независимых задачек, каждую из которых человек решает с какой-то вероятностью. Результат определяется суммарным количеством решенных задач, потому описывается случайной величиной, имеющей нормальное распределение (т.к. распределение суммы независимых случайных величин стремится к нормальному). При переводе числа решенных задач в непосредственно значение IQ используют статистику множества людей, выбрав мат.ожидание за 100 очков и стандартное отклонение за 15.


Зная параметры распределения и свой IQ, можно математически точно определить процент людей с меньшим (или большим) IQ чем у тебя. Это вся закрашенная область на графике слева (справа) от твоей линии. Считается она через функцию распределения:

К счастью, интеграл можно не вычислять, т.к. искомое значение выражается через функцию ошибок, для которой известно простое разложение в ряд:



Что в коде превращается в:

function erf(z:Number) : Number {
  var v:Number = z, sum:Number  = 0, z2:Number = - z * z;
  for (var n:int = 0; n < 21; n++) {
    sum += v / (2*n+1);
    v *= z2 / (n+1);
  }
  return sum * 1.1283791671;
}

Код на ActionScript 3, ибо вот он, недостающий элемент IQ теста, - вычислятель того, насколько ты умнее других:


Рассчитан на распределение со стандартным отклонением 15, используемое сейчас чаще всего. IQ тест с таким распределением можно пройти, например, здесь.

Profile

thedeemon: (Default)
Dmitry Popov

May 2025

S M T W T F S
    123
45678910
11 121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 10th, 2025 06:25 am
Powered by Dreamwidth Studios