Предположим, что e [i] и o [i] - это массивы, содержащие ожидаемое и наблюдаемое количество бросков для каждой из 6 возможностей. В вашем случае, e [i] равно 100 для каждого бина, а o [i] - это количество раз, которое я бросил в ваших 600 испытаниях.
Затем вы вычисляете статистику хи-квадрат путем суммирования (e [i] -o [i]) 2 / e [i] за
6 корзин. Допустим, ваш массив o [i] содержит 105, 95, 102, 98, 98 и 102
считает после выполнения ваших 600 испытаний.
Чи 2 = 5 2 / 100 + 5 2 / 100 + 2 2 / 100 + 2 2 / 100 + 2 2 / 100 + 2 2 / 100 = .660
У вас есть пять степеней свободы (количество бинов минус 1). Итак, вы собираетесь
иметь объявление вроде
boost::math::chi_squared mydist(5);
для создания объекта Boost, представляющего ваше распределение хи-квадрат.
На этом этапе вы использовали бы функцию доступа cdf
(накопительную функцию распределения) из библиотеки Boost, чтобы найти значение p, соответствующее баллу хи-квадрат 0,660 с пятью степенями свободы.
p = boost::math::cdf(mydist,.660);
Вы должны получить что-то близкое к 0,015, что было бы интерпретировано как (1 - .015) = 98,5% вероятность наблюдения показателя хи-квадрат по крайней мере до 0,660, если принять нулевую гипотезу (что умереть честно) Таким образом, для этого набора данных нулевая гипотеза не может быть отклонена с любым разумным уровнем достоверности. (Отказ от ответственности: непроверенный код! Но если я правильно понимаю документацию Boost, это должно работать так.)