Занимательная математика
Aug. 18th, 2007 11:38 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Купили очередную игрушку с кубиками, начал считать вероятности, просто как-то не получается.
Кидаем один кубик - всё просто, вероятность у каждой грани 1/6.
Кидаем два кубика - тоже просто, вероятность выкинуть в сумме число n равна (n-1)/36 для n<=7 и (13-n)/36 для n>=7. Т.е. такая крышка треугольная.
А в этой игрушке нужно кидать пару кубиков до тех пор, пока не выпадет 4 разные значения. Т.е. если выпадает уже выпавшая в этом туре сумма, мы перебрасываем кубики.
Задача: пересчитать вероятности всех возможных сумм от 2 до 12.
Провёл час с ручкой и бумажкой - быстро и красиво не получается. Сел написал на VBA метод Monte-Carlo - цифры вылезли, но удовлетворения не принесли. Особенно, если учесть грядущую смену работы именно что с программиста на статистика...
Кидаем один кубик - всё просто, вероятность у каждой грани 1/6.
Кидаем два кубика - тоже просто, вероятность выкинуть в сумме число n равна (n-1)/36 для n<=7 и (13-n)/36 для n>=7. Т.е. такая крышка треугольная.
А в этой игрушке нужно кидать пару кубиков до тех пор, пока не выпадет 4 разные значения. Т.е. если выпадает уже выпавшая в этом туре сумма, мы перебрасываем кубики.
Задача: пересчитать вероятности всех возможных сумм от 2 до 12.
Провёл час с ручкой и бумажкой - быстро и красиво не получается. Сел написал на VBA метод Monte-Carlo - цифры вылезли, но удовлетворения не принесли. Особенно, если учесть грядущую смену работы именно что с программиста на статистика...
no subject
Date: 2007-08-18 11:09 pm (UTC)вот полный перебор, 4:3:3 не получается, моё решение тоже неверное ...
ab 0.125
aab 0.03125
aaab 0.0078125
aaaab 0.001953125
aaaaab 4.8828125E-4
aaaaaab 1.220703125E-4
aaaaaaab 3.0517578125E-5
ac 0.0625
aac 0.015625
aaac 0.00390625
aaaac 9.765625E-4
aaaaac 2.44140625E-4
aaaaaac 6.103515625E-5
aaaaaaac 1.52587890625E-5
ba 0.125
bba 0.0625
bbba 0.03125
bbbba 0.015625
bbbbba 0.0078125
bbbbbba 0.00390625
bbbbbbba 0.001953125
bc 0.125
bbc 0.0625
bbbc 0.03125
bbbbc 0.015625
bbbbbc 0.0078125
bbbbbbc 0.00390625
bbbbbbbc 0.001953125
ca 0.0625
cca 0.015625
ccca 0.00390625
cccca 9.765625E-4
ccccca 2.44140625E-4
cccccca 6.103515625E-5
ccccccca 1.52587890625E-5
cb 0.125
ccb 0.03125
cccb 0.0078125
ccccb 0.001953125
cccccb 4.8828125E-4
ccccccb 1.220703125E-4
cccccccb 3.0517578125E-5
check_sum=0.996063232421875
a:0.25: result=0.58135986328125
b:0.5: result=0.82940673828125
c:0.25: result=0.58135986328125
если увеличить количество повторений, то получится:
check_sum=1.0
a:0.25: result=0.5833333333333334
b:0.5: result=0.8333333333333333
c:0.25: result=0.5833333333333333
кстати, события {будет А, будет Б, будет С} не образуют полную группу, сумма их вероятностей не равна 1.
no subject
Date: 2007-08-18 11:27 pm (UTC)ето пренебрегая повторами - честным расписыванием вероятностей
надо просто учитывать что эффективные вероятности последуюших событий меняются..
если выпало "б" то во втором а:ц=1:1, а если а - то б:ц=2:1
в брут форсе кстати учесть легко... писал бы на чем нормальном - переделал бы, а так .. спагетти-код получился, не разобраться
no subject
Date: 2007-08-18 11:41 pm (UTC)no subject
Date: 2007-08-18 11:42 pm (UTC)no subject
Date: 2007-08-19 12:02 am (UTC)2 из 3-х: а b c , 0.5, 0.25, 0.25
2 из 4-х: а b c d, 1/6, 2/6, 2/6, 1/6
сходится
только вот для случая, когда выбираешь больше, чем 2, похоже надо ещё учитывать размещения ... +бесконечного+ числа элементов
типа
ababab...c
aaabbb...c
aabbab...c
no subject
Date: 2007-08-19 12:29 am (UTC)во втором круге после выпадения "а" все вероятности остальных результатов домножаются на 1/(1-а); после выпадения "аб" - в третем круге 1/(1-а)(1-б)
никаких прогрессий, тупой перебор.
для случая 0.5, 0.25,0.25:
после выпадения А(0.5), вероятности б и ц будут 0.25/(1-0.5)=0.5
после выпадения Б(0.25) - а'=0.5/(1-0.25)=2/3, ц'=0.25/(1-0.25)=1/3
т.е. вероятность
АБ=АЦ в полном раскладе (включая все повторы) 0.5*0.5=1/4
БА(=ЦА)=0.25*2/3=1/6,
БЦ=ЦБ=0.25*1/3=1/12
вот и фсе, осталось расписать на случай 4 элементов из 11...
no subject
Date: 2007-08-19 11:05 am (UTC)программа даёт те же результаты для предыдущих примеров:
check_sum=0.9995112419128418
a:0.25: result=0.5830888748168945
b:0.5: result=0.8328447341918945
c:0.25: result=0.5830888748168945
Зелёный, проверь, у тебя то же самое через монтекарло получилось?
4 из 11:
check_sum=0.9999991075274337
2:0.027777777777777776: result=0.13082540553267935
3:0.05555555555555555: result=0.24893756434728012
4:0.08333333333333333: result=0.353921116535629
5:0.1111111111111111: result=0.4456963584380095
6:0.1388888888888889: result=0.5246803714082363
7:0.16666666666666666: result=0.5918747975860624
8:0.1388888888888889: result=0.5246803714082362
9:0.1111111111111111: result=0.4456963584380088
10:0.08333333333333333: result=0.3539211165356294
11:0.05555555555555555: result=0.24893756434727982
12:0.027777777777777776: result=0.13082540553267938
no subject
Date: 2007-08-19 11:25 am (UTC)no subject
Date: 2007-08-19 04:56 pm (UTC)no subject
Date: 2007-08-20 07:42 am (UTC)Я просто надеялся, что там есть какой-то такой финт ушами, сделав который мы можем сказать "очевидно данная сумма равняется..."
no subject
Date: 2007-08-20 07:31 am (UTC)