Я прорабатываю Ruby Koans и в настоящее время использую AboutHashes. До этого момента assert_equals следовали определенному стилю форматирования: assert_equal
пробел ожидаемое_значение
запятая фактическое значение
(например, assert_equal 2, 1 + 1
). Но у test_creating_hashes def в About Hashes есть assert_equal, который не соответствует этому шаблону, и если я изменю его для соответствия этому шаблону, он не сработает. В частности:
люинт пуассон (люинт лямбда) {двойное L = ехр (-двойное (лямбда)); luint k = 0; double p = 1; ...
Я реализовал эту функцию для генерации случайной величины Пуассона
typedef long unsigned int luint;
luint poisson(luint lambda) {
double L = exp(-double(lambda));
luint k = 0;
double p = 1;
do {
k++;
p *= mrand.rand();
} while( p > L);
return (k-1);
}
, где mrand - генератор случайных чисел Мерсенна-Твистера. Я обнаружил, что по мере увеличения лямбды ожидаемое распределение будет неправильным, со средним насыщением около 750. Это связано с численными приближениями или я сделал какие-то ошибки?