- 1
- 2
- 3
for (i = 0; i < Math.random() * 100; i++) {
//stuff(i);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−44
for (i = 0; i < Math.random() * 100; i++) {
//stuff(i);
}
Нормальное распределение
Или это шлёптимизация суммы N равномерных случайных для получения нормально распределенного?
Х.з. какое это распределение.
Распределение стрёмное, ответ вольфрамальфы я даже причесать толком не смог. Впрочем, никакой порнографии там нет, только факториалы и неполная гамма-функция.
где k - номер итерации которую нужно пройти? Или мы считаем что события как-то зависят друг от друга?
Т.е. шанс зафейлить первую итерацию: 1 из 100 (т.как i=0, и шанс того, что рандом выкатит 0 - 1/100). На следующией итерации, i=1, и шанс, что рандом выкатит 0 или 1 - 2/100).
Дальше скадываем разность всех событий и неудач.
Вцелом, я так понимаю, мы должны ожидать, что примерно 10 итераций пройдем (т.как вероятность около 50%).
Пройти 27 итераций - вероятность 1%.
Вобщем, не 12, а 11. Нужно было возвращать последнюю удачную итерацию.
http://i042.radikal.ru/1607/af/18baf1b01833.png
> Разве это не просто
Нет. Твоя формула вычисляет вероятность пройти не менее k итераций. Формула Soul_re@ver вычисляет вероятность пройти ровно n-1 итерацию, и упасть на итерации n.
Правда, он забыл указать основание рекуррентной формулы P0 = 0, видимо, посчитал очевидным.
> не 10, а 12
Возможно, кто-то путает медиану и матожидание.
А почему это вообще интересно считать вероятность пройти конкретное количество итераций?
Вообще идея похожа на "нанять секретаря". Т.е. задача где нужно посчитать затраты если нанимать секретаря по принципу: за собеседование платим всегда, и если нашли кандидата лучше, то нанимаем нового кандидата (и платим агентству). Это какой-то известный пример анализа амортизированой стоимости.
The expected value is also known as the expectation, mathematical expectation, EV, average, mean value, mean, or first moment.
В любом случае, вывод был, что нужно будет сделать ln n выплат агентству, что примерно сходится.
Потому что только так и можно посчитать матожидание (expected value (en), Erwartungswert (de) для иностранных господ), образованный ты наш.
Как всегда, много умных слов и выпендрёжа, а в основах плаваем.
У нормального распределения совпадают мода, м.о. и медиана, в то время как тут: 10, 12.2 и 12 соответственно. И это еще и не середина диапазона (15 с дов. интервалом 99.5%), как можно было бы хотеть.
У нормального распределения левая и правая сторона имеют одинаковые по пологости края, в то время как у данного распределения коэффициент асимметрии аж 1.6 (!!!) (впрочем, его положительность следует из порядка мода-медиана-матожидание как раз)
Если уж есть потребность в подобной дискретизации, нормальное лучше всего моделируется биномиальным. А это просто - подкинуть монетку 100 раз и подсчитать количество "решек". Получается "почти нормальное" распределение с м.о. 50 и дисперсией 25. Легко управляется, считается так же за O(N).
И это не говоря о человеческих способах преобразования равномерного в нормальное, навроде Бокса — Мюллера.
Например, могу дать явный ответ на страдания в поисках: "мне не понятно, действительно ли там такая зависимость или просто похож". Нет, не такая даже близко. Ближе биномиального не получится (в том числе, по упомянутым критериям), а от биномиального оно отличается сильно формулой, графиком, поведением моментов и прочих числовых характеристик.