green_fr: (Default)
green_fr ([personal profile] green_fr) wrote2007-08-18 11:38 am
Entry tags:

Занимательная математика

Купили очередную игрушку с кубиками, начал считать вероятности, просто как-то не получается.
Кидаем один кубик - всё просто, вероятность у каждой грани 1/6.
Кидаем два кубика - тоже просто, вероятность выкинуть в сумме число n равна (n-1)/36 для n<=7 и (13-n)/36 для n>=7. Т.е. такая крышка треугольная.
А в этой игрушке нужно кидать пару кубиков до тех пор, пока не выпадет 4 разные значения. Т.е. если выпадает уже выпавшая в этом туре сумма, мы перебрасываем кубики.
Задача: пересчитать вероятности всех возможных сумм от 2 до 12.
Провёл час с ручкой и бумажкой - быстро и красиво не получается. Сел написал на VBA метод Monte-Carlo - цифры вылезли, но удовлетворения не принесли. Особенно, если учесть грядущую смену работы именно что с программиста на статистика...

[identity profile] mihhon.livejournal.com 2007-08-18 06:25 pm (UTC)(link)
1) неправильная схема испытаний
аа - на этом испытание не заканчивается, событие ещё не наступило (событие наступает тогда, когда будет получено b )

полная группа событий должна выглядеть так:

аааa...b
aaab
aab
ab
ba
bba
bbba
bbbb...a

2) это вырожденный случай - и a и b появляются с вероятностью 1 :) выбираем 2 числа из 2-х => оба с вероятностью 1 в выборке

[identity profile] mihhon.livejournal.com 2007-08-18 06:30 pm (UTC)(link)
итого: в данном случае может быть только a или b с соответствующими вероятностями 1/3 и 2/3

[identity profile] kalvado.livejournal.com 2007-08-18 09:40 pm (UTC)(link)
1. не в кассу.
по моему достаточно очевидно, что раз оказавшись на ветке дерева и выбросив повтор мы окажемся на идентичной ветке с ровно теми же вероятностями конечных ситуаций; и повторами можно просто пренебречь.
другими словами, для набора а, b, c ситуации один бросок-а и 5 бросков а(аааа) можно рассматривать как идентичные в смысле относительного распределения вероятностей конечного исхода
как написать грамотное док-во я не знаю, но по-моему идея ясна

2. хорошо, рассмотрим а b c , 0.5, 0.25, 0.25
у меня для 2 испытаний получается вероятность 4:3:3; при этом вырождения нет.

[identity profile] kalvado.livejournal.com 2007-08-18 10:20 pm (UTC)(link)
nu nepravda moya... 10:7:7, no vse ravno "a" sil'no zadavleno..

[identity profile] mihhon.livejournal.com 2007-08-18 11:09 pm (UTC)(link)
повторами нельзя пренебречь ...

вот полный перебор, 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.

[identity profile] kalvado.livejournal.com 2007-08-18 11:27 pm (UTC)(link)
ну 10:7:7 как раз получается, я поправился
ето пренебрегая повторами - честным расписыванием вероятностей
надо просто учитывать что эффективные вероятности последуюших событий меняются..
если выпало "б" то во втором а:ц=1:1, а если а - то б:ц=2:1
в брут форсе кстати учесть легко... писал бы на чем нормальном - переделал бы, а так .. спагетти-код получился, не разобраться

[identity profile] mihhon.livejournal.com 2007-08-18 11:41 pm (UTC)(link)
хохо, дошло, я нашёл аналитическое решение - эти хвосты - суммы бесконечных геометрических прогрессий => далее тривиально :)

[identity profile] kalvado.livejournal.com 2007-08-18 11:42 pm (UTC)(link)
осталось код написать!

[identity profile] mihhon.livejournal.com 2007-08-19 12:02 am (UTC)(link)
я проверил для
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



[identity profile] kalvado.livejournal.com 2007-08-19 12:29 am (UTC)(link)
предложение, которое пока у меня сработало:
во втором круге после выпадения "а" все вероятности остальных результатов домножаются на 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...

[identity profile] mihhon.livejournal.com 2007-08-19 11:05 am (UTC)(link)
вот аналитическое решение:



программа даёт те же результаты для предыдущих примеров:

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

[identity profile] mihhon.livejournal.com 2007-08-19 11:25 am (UTC)(link)
да, там где суммы - суммы по всем подмножествам I :) забыл написать

[identity profile] mihhon.livejournal.com 2007-08-19 04:56 pm (UTC)(link)
Pl - суммировать все такие суммы, куда входит l={l, ik}={l, i, j, z}

[identity profile] green-fr.livejournal.com 2007-08-20 07:42 am (UTC)(link)
Примерно такие числа, да...
Я просто надеялся, что там есть какой-то такой финт ушами, сделав который мы можем сказать "очевидно данная сумма равняется..."

[identity profile] green-fr.livejournal.com 2007-08-20 07:31 am (UTC)(link)
Я на этом же остановился: вероятность корректируется в зависимости от выпавшего, потом сумма по всем вариантам первого элемента. Заткнулся достаточно быстро, ничего там не сворачивается, не сходится. Т.е. можно аккуратно всё выписать и досчитать, но это как-то грустно получается.