- 1
- 2
- 3
- 4
- 5
double x = 0, y;
while (x < 1) {
y = x;
x += rand(0, 1);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
double x = 0, y;
while (x < 1) {
y = x;
x += rand(0, 1);
}
Задача на теорию вореации и кобенаторику.
rand - равномерное распределение
Нужно найти матожидание y. С пруфами.
Потом (чтобы не спойлерить) могу скинуть ссылку откуда я это взял, с разбором.
Нужно сделать программу, которая методом Монте-Карло его посчитает.
Но программу делать тоже лень, бггг.
Я вот тоже сразу подумал на 1/sqrt(2), чисто интуитивно мат. ожидание должно быть больше 0.5
0.7184265171596017
Таки похоже на обратный корень из 2 с коррекцией на хуёвый рандом в js.
Но дробная часть e... Вряд ли бы подумал.
>Только самое интересное - почему
e - связана с ростом, накоплением.
Какой смысл у этого? Например есть некая растущая величина, допустим вклад в банке, на который за время T набегают проценты равные сумме исходного вклада.
То есть он увеличивается в 2 раза. И есть другой вклад, в котором непрерывно проценты капают не только на основное тело, но и на ранее начисленные проценты. Такой вклад за Т увеличивается в e раз.
Выражаясь простым языком (e-2) это разница между ростом непрерывным (постоянная капитализация) и ростом дискретным.
Всё неправильно.
https://www.youtube.com/watch?v=jG7vhMMXagQ
https://www.youtube.com/watch?v=kmnogV9S7b8
https://www.youtube.com/watch?v=nnZk_YuIYkA
А враг-то в другом месте окопался.
>вореантность получить 0.01 равна или не равна вореантности получить 0.1?
std::uniform_real_distribution
и вообще, сначала не так прочитал и расстроился, что y не инициализирована.
У меня получается, что P(x1+x2+x3+...+xn<A) = A^(2*n-1) / (2*n-1)! вместо ~1/n!
Хотя, вот сейчас перечитывал записи, увидел, что пихал линейную питушню вместо константы - вот и с каждым интегрированием набирался квадрат вместо линейного питуха.
Хм, может, я хотя бы половину задачи осилю...
1. P(nx<1) = 1/n!
2. E(nx, nx<1, 0 иначе) = n/(n+1)!
3. P(nx<1, (n+1)x>1) = E(nx,nx<1,0 иначе)
4. E(nx, nx<1, (n+1)x>1, 0 иначе) = n(n+1)/(n+2)!
5. from 1 to inf sum(E(nx, nx<1, (n+1)x>1, 0 иначе)) = e-2
6. E(y из задачи) = e-2
Доказать я могу только первый пункт, и наверное второй.
А я давеча размышлял на эту тему. Проблема как мне кажется в следующем.
Посчитать МО фиксированного числа случайных переменных не слишком сложно. Но посчитать МО случайного! числа случайных переменных — та еще задачка.
Решил зайти с другой стороны.
И обнаружил еще более внезапный и потрясающий факт: мат. ожидание количества итераций равно e.
В смысле, в среднем цикл while (x < 1) будет отрабатывать 2.7.. раз!