Почему форматирование / синтаксис для хэшей assert_equal отличается от других хэшей assert_equals?

Я прорабатываю 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. Это связано с численными приближениями или я сделал какие-то ошибки?

5
задан Bob 14 April 2011 в 02:18
поделиться