RPG-ZONE
Новости Форумы Путеводитель FAQ (RPG) Библиотека «Пролёт Фантазии» «Штрихи Пролёта» Дайсы
>  Список форумов · 
  • Университет
  • Математическая задачка
  • Здравствуй, Гость (Вход · Регистрация)
    Закрыто Doll 16-02-2012: по просьбе топикстартера

    Страницы: (2) [1] 2  Открыть все 
     Закрыта
     Новая тема
     Опрос

    > Математическая задачка
       Сообщение № 1. 24.11.2009, 01:02, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Ребята, мне нужна помощь, если у кого-нибудь есть высокая мат. подготовка, помогите вывести формулу или просто алгоритм решения подобных задач:

    Общий вид:

    Мы бросаем (a+X)dY, отбрасываем X min результатов, получаем сумму C.
    Где: a - const;
    C = {a, a*Y}

    Какова вероятность выпадения каждой суммы С в отрезке {a, a*Y}

    Пример. Частный вид:

    Мы бросаем (3+2)d4, отбрасываем 2 min результатов, получаем сумму С.
    С = {3, 12}

       Сообщение № 2. 24.11.2009, 01:12, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Вот какая раскладка будет для приведенного примера частного вида, а вывести формулу кто-нибудь сможет? :kz:

    Присоединённое изображение

       Сообщение № 3. 1.12.2009, 16:39, Игрок пишет:
    Игрок ( Offline )
    Странник

    *
    Адепт
    Сообщений: 109
    профиль

    Репутация: 4
    А на раскладке, что есть X, что Y?

       Сообщение № 4. 1.12.2009, 20:20, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    А таблицу ты осознанно игнорируешь?

    Первая раскладка: по иксу значения Roll'a. по игреку количество вариантов выпадения от общей суммы вариантов\процентная вероятность выпадения конкретного числа.

    Вторая: по иксу значение Roll'a, включающее, все наименьшие значения вплоть до начала координат. по игреку количество вариантов выпадения от общей суммы вариантов\процентная вероятность выпадения всего отрезка.

       Сообщение № 5. 2.12.2009, 19:44, Oly пишет:
    Oly ( Offline )
    PowerPuff

    *
    Сказочница
    Сообщений: 5795
    профиль

    Репутация: 245
    Усиленно думаю. Должно быть не сложно, правда очень боюсь запутаться в формулах комбинаторики...

    Первая мысля, на которой запнулась - а ведь если модификатор (то есть а) будет равен 0, то и отрезок будет нулевым. А первый результат будет всегда невозможным, поскольку минимум это а+Х. В общем надо подумать над границами отрезка.

       Сообщение № 6. 2.12.2009, 20:11, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    Oly
    Модификатор вполне можно отбросить или задать произвольным, поскольку он только смещает отрезок. Аналитическое решение без отбрасывания минимальных существует, но найденное мной оказалось достаточно тяжеловесным в силу дискретной вероятности.
    Я запнулась на аналитическом отбросе N минимальных. То есть, запрограммировать это достаточно просто, а вот ввести точную несмещенную оценку - хз. Равномерное распределение только кажется простым, а сложные операция с ним проводить труднее.

       Сообщение № 7. 2.12.2009, 20:40, Oly пишет:
    Oly ( Offline )
    PowerPuff

    *
    Сказочница
    Сообщений: 5795
    профиль

    Репутация: 245
    Ну, в принципе все и правда не очень сложно. Вот это - количество всех вариантов и если из них вычесть Х, то получим искомое количество ситуаций. А вот ситуации соответствующие условию C = {a, a*Y} искать как то особого смысла не вижу. Так что если Фех что-нибудь скажет по этому поводу, то посмотрим дальше.

       Сообщение № 8. 2.12.2009, 21:00, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    Oly
    Ты посчитала число вариантов выбора без учета порядка с возвращением. Тем не менее, это не дает правильной вероятностной оценки - это число макросостояний, возможных в данной системе, в то время, как требуется оценить так называемое число микросостояний на каждое макросостояние. С помощью комбинаторики это можно сделать, используя суперпозицию нескольких полиномиальных распределений, но ввиду того, что количество граней у кубика можно варьировать, каждый раз придется заново выводить формулу.

    Вообще можно подсчитать при каком числе X отличие от нормального распределения становится незначительным и использовать интеграл ошибок, однако проблему отбрасывания минимальных значений надо будет решать как-то искусственно.

       Сообщение № 9. 2.12.2009, 21:07, Oly пишет:
    Oly ( Offline )
    PowerPuff

    *
    Сказочница
    Сообщений: 5795
    профиль

    Репутация: 245
    Зачем так усложнять? Можно и с учетом порядка посчитать, только сдается мне это не будет давать значимого результата. Как собственно можно вовсе игнорировать отброс минимальных значений (даже если их стопитсот) поскольку вероятность их выпадений минимальна.

    А вот с отрезком и правда придется повозиться...

    СТОП! Меня осенило... Фех, блин, если при при бросании Х кубиков мы выкидываем Х минимальных результатов, то у нас вообще ничего не остается %)

       Сообщение № 10. 2.12.2009, 22:00, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    Oly
    Цитата(Oly)
    Как собственно можно вовсе игнорировать отброс минимальных значений (даже если их стопитсот) поскольку вероятность их выпадений минимальна.

    Не-не, если у нас реализуется случай, когда мы кидаем, допустим, 4d6 и отбрасываем минимальное, то разброс значений получается от 3 до 18 с максимумом не в 13-14, как если бы мы кидали просто 3d6, а смещенным в сторону больших значений, и чем больше мы отбрасываем, тем сильнее мы уводим влево пик. У нас вместо Гаусса будет скорее Максвелл (если в картинках).

    Цитата(Oly)
    СТОП! Меня осенило... Фех, блин, если при при бросании Х кубиков мы выкидываем Х минимальных результатов, то у нас вообще ничего не остается %)

    ну z отбрось, смысл не меняется. Фех в обозначениях чуть напортачил.

    Цитата(Oly)
    Можно и с учетом порядка посчитать, только сдается мне это не будет давать значимого результата.

    Общее количество реализуемыех ситуаций будет просто Y^X (поскольку выпадение 1 и 2, 2 и 1 это две разных ситуации для расчета вероятности), вопрос как построить функцию распределения P(s<c) (s будет вместо излюбленной кси). У меня нашлась аналитическая формула, но что-то она при подстановке она сильно косячила.

       Сообщение № 11. 2.12.2009, 22:13, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Цитата(Oly)
    СТОП! Меня осенило... Фех, блин, если при при бросании Х кубиков мы выкидываем Х минимальных результатов, то у нас вообще ничего не остается %)

    Oly ты не врубилась, я допустил вольность в оформлении формулы, а ты от нее неправильно развила мысль.

    Бросается не Х кубиков, а "а+Х". Иначе если бросать Х и отбрасывать Х меньших - все значения Х уйдут в отброс и останется сухой остаток "а", который я записал как модификатор, а ты его так и увидела.

    P.S. Надо ж было и на частный вид глянуть - по нему все понятно. Попрошу Куклу поменять запись, чтобы больше никто не обманывался:
    Цитата(Фех)
    a+XdY

    аdY+XdY или (а+Х)dY
    Цитата(Фех)
    3+2d4

    3d4+2d4 (3+2)dY

    P.P.S. Я не смог это посчитать на бумажке, вот и создал тему - если кто любит на тему кубиков надрачивать. Я просто когда играю - обычно в уме именно в % прикидываю шансы на успех. А тут думал над схемой для своего нового МБ и не смог посчтитать :( Пришлось связываться с Нерушибзиком, напрягать его - когда и он не смог - я опустил руки и по совету Нерушибзика тупо оттестил все в проге.

       Сообщение № 12. 25.1.2010, 21:15, zho пишет:
    zho ( Offline )
    хронический раздолбай



    Исчадье Ада
    Сообщений: 2328
    профиль

    Репутация: 83

       Сообщение № 13. 11.2.2012, 23:53, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Наверняка все, кому надо давно посчитали, но почему бы не апнуть темку.

    В замкнутом виде не вычисляется, но программкой считается влет.

    бросок (3+1)d10-3... удобнее, чтобы кость была от 0 до 9 :)

    Первое число -- сколько исходов ровно с таким результатом, второе -- сколько не больше чем с таким, т.е. сумма первых чисел из всех строк не ниже этой. Например, в строке 4 число 74 это сумма 1+4+10+21+38. Чтобы получить вероятности поделите все на 10000 (я капитан!).

    result 0 1 1
    result 1 4 5
    result 2 10 15
    result 3 21 36
    result 4 38 74
    result 5 62 136
    result 6 95 231
    result 7 138 369
    result 8 192 561
    result 9 259 820
    result 10 336 1156
    result 11 420 1576
    result 12 505 2081
    result 13 588 2669
    result 14 662 3331
    result 15 725 4056
    result 16 770 4826
    result 17 794 5620
    result 18 791 6411
    result 19 758 7169
    result 20 694 7863
    result 21 609 8472
    result 22 508 8980
    result 23 400 9380
    result 24 291 9671
    result 25 190 9861
    result 26 102 9963
    result 27 37 10000


    бросок (3+2)d10-3... удобнее, чтобы кость была от 0 до 9 :)

    Первое число -- сколько исходов ровно с таким результатом, второе -- сколько не больше чем с таким, т.е. сумма первых чисел из всех строк не ниже этой. Например, в строке 4 число 152 это сумма 1+5+15+41+90. Чтобы получить вероятности поделите все на 100000 (я капитан!).

    result 0 1 1
    result 1 5 6
    result 2 15 21
    result 3 41 62
    result 4 90 152
    result 5 170 322
    result 6 301 623
    result 7 495 1118
    result 8 765 1883
    result 9 1141 3024
    result 10 1635 4659
    result 11 2255 6914
    result 12 3001 9915
    result 13 3865 13780
    result 14 4790 18570
    result 15 5776 24346
    result 16 6730 31076
    result 17 7610 38686
    result 18 8316 47002
    result 19 8790 55792
    result 20 8875 64667
    result 21 8591 73258
    result 22 7855 81113
    result 23 6755 87868
    result 24 5331 93199
    result 25 3775 96974
    result 26 2170 99144
    result 27 856 100000


    Код программки выложить?

       Сообщение № 14. 12.2.2012, 04:18, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Мне формулу интерестно кто выведет, прогой то я уже давным давно все оттестировал.

    У меня кстати есть новые заморочки которые хочется быстрее оттестить, но там весьма большой массив контест бросков и надо рассчитать % на успех броска 1 против броска 2, наоборот и шансы на ничью... Не могу пока подобрать прогу :(

       Сообщение № 15. 12.2.2012, 04:34, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Цитата(Фех)
    Мне формулу интерестно кто выведет, прогой то я уже давным давно все оттестировал.


    А формулы в замкнутом виде там и нет. При фиксированых значениях a и X формула, конечно, есть, но если считать, скажем, X переменной, то вы получаете ряд с участием биномиальных коэф-тов, который не суммируется в замкнутом виде. И нафиг вам это надо?

    А если вас интересуют вопросы типа "с какой вероятностью бросок (3+1)d10 обыгрявает бросок (3+2)d10+4" --- то из приведенных данных это нефиг делать посчитать.

       Сообщение № 16. 12.2.2012, 11:58, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Тогда как составить формулу, зная а и X? Для каждого частного случая броска.

    Цитата(bookwarrior)
    А если вас интересуют вопросы типа "с какой вероятностью бросок (3+1)d10 обыгрявает бросок (3+2)d10+4" --- то из приведенных данных это нефиг делать посчитать.

    Такие броски тоже надо просчитать, но есть задачи и посложнее навроде сравнения бросков
    2d6 с отбросом одного наименьшего и перебросе единицы на одном из кубов с оставлением наибольшего результата
    я это записываю в виде (d6+dh)R1
    и
    1d10+1d6+1 и перебросом суммы до 3 или одного из значений до 3 с оставлением наибольшего: d10d6R3
    В общем не уверен, что я математически грамотно изъясняюсь, поэтому лучше в личку напишу.

       Сообщение № 17. 12.2.2012, 12:24, CTPAHHUK пишет:
    CTPAHHUK ( Offline )
    Dixi

    *
    Владыка Тьмы
    Сообщений: 4103
    профиль

    Репутация: 145
    Цитата(Фех)
    2d6 с отбросом одного наименьшего и перебросе единицы на одном из кубов с оставлением наибольшего результата

    :confused:

    Ну и системки у тебя, ORE отдыхает...

       Сообщение № 18. 12.2.2012, 13:41, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Это только звучит сложно, а на деле очень даже просто и удобно, а главное многофункционально.

       Сообщение № 19. 13.2.2012, 00:06, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    Фех
    Цитата(Фех)
    Тогда как составить формулу, зная а и X? Для каждого частного случая броска.

    Суперпозицией соответствующих полиномов. :rolly:

    Проще, на самом деле, строить реальное распределение при выборке бросков 1000-10000 и аппроксимировать его чем-нибудь подходящим (в смысле, задать заточенной проге подобрать нужную аппроксимацию).

       Сообщение № 20. 13.2.2012, 01:24, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Цитата(Doll)
    Проще, на самом деле, строить реальное распределение при выборке бросков 1000-10000 и аппроксимировать его чем-нибудь подходящим (в смысле, задать заточенной проге подобрать нужную аппроксимацию).


    Ага. :worry: Вот эту мысль я отбросил первой, по следующим причинам:
    1). Культурно оценить, насколько это приближение отличается от реальных вероятностей будет весьма геморно.
    2). Вообще-то, броски, которые были независимы в adY уже не независимы в (a+1)dY ,
    ибо от результатов бросков зависит, какая кость выброшена, значит и какие кости остались. Ковариация, конечно, будет маленькая, но будет... так что процесс уже слегка не пуассоновский. Внимание, вопрос на миллион: а с почему тогда распределение нормальное? (Да, я понимаю, что оно, наверное, будет близким к нормальному. Только оценивать насколько может отличаться у меня желания не возникает).

    Сегодня был занят, на днях наваяю прогу, считающую контесты.

       Сообщение № 21. 13.2.2012, 02:18, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Вот несколько распределений вероятностей по противопоставленным броскам.

    3d10+bonus vs 3d10

    Discription 3d10 vs 3d10
    bonus -27 win999999 tie1 lose0 checksum1000000
    bonus -26 win999993 tie6 lose1 checksum1000000
    bonus -25 win999972 tie21 lose7 checksum1000000
    bonus -24 win999916 tie56 lose28 checksum1000000
    bonus -23 win999790 tie126 lose84 checksum1000000
    bonus -22 win999538 tie252 lose210 checksum1000000
    bonus -21 win999076 tie462 lose462 checksum1000000
    bonus -20 win998284 tie792 lose924 checksum1000000
    bonus -19 win996997 tie1287 lose1716 checksum1000000
    bonus -18 win994995 tie2002 lose3003 checksum1000000
    bonus -17 win991998 tie2997 lose5005 checksum1000000
    bonus -16 win987666 tie4332 lose8002 checksum1000000
    bonus -15 win981604 tie6062 lose12334 checksum1000000
    bonus -14 win973372 tie8232 lose18396 checksum1000000
    bonus -13 win962500 tie10872 lose26628 checksum1000000
    bonus -12 win948508 tie13992 lose37500 checksum1000000
    bonus -11 win930931 tie17577 lose51492 checksum1000000
    bonus -10 win909349 tie21582 lose69069 checksum1000000
    bonus -9 win883422 tie25927 lose90651 checksum1000000
    bonus -8 win852930 tie30492 lose116578 checksum1000000
    bonus -7 win817803 tie35127 lose147070 checksum1000000
    bonus -6 win778141 tie39662 lose182197 checksum1000000
    bonus -5 win734224 tie43917 lose221859 checksum1000000
    bonus -4 win686512 tie47712 lose265776 checksum1000000
    bonus -3 win635635 tie50877 lose313488 checksum1000000
    bonus -2 win582373 tie53262 lose364365 checksum1000000
    bonus -1 win527626 tie54747 lose417627 checksum1000000
    bonus 0 win472374 tie55252 lose472374 checksum1000000
    bonus 1 win417627 tie54747 lose527626 checksum1000000
    bonus 2 win364365 tie53262 lose582373 checksum1000000
    bonus 3 win313488 tie50877 lose635635 checksum1000000
    bonus 4 win265776 tie47712 lose686512 checksum1000000
    bonus 5 win221859 tie43917 lose734224 checksum1000000
    bonus 6 win182197 tie39662 lose778141 checksum1000000
    bonus 7 win147070 tie35127 lose817803 checksum1000000
    bonus 8 win116578 tie30492 lose852930 checksum1000000
    bonus 9 win90651 tie25927 lose883422 checksum1000000
    bonus 10 win69069 tie21582 lose909349 checksum1000000
    bonus 11 win51492 tie17577 lose930931 checksum1000000
    bonus 12 win37500 tie13992 lose948508 checksum1000000
    bonus 13 win26628 tie10872 lose962500 checksum1000000
    bonus 14 win18396 tie8232 lose973372 checksum1000000
    bonus 15 win12334 tie6062 lose981604 checksum1000000
    bonus 16 win8002 tie4332 lose987666 checksum1000000
    bonus 17 win5005 tie2997 lose991998 checksum1000000
    bonus 18 win3003 tie2002 lose994995 checksum1000000
    bonus 19 win1716 tie1287 lose996997 checksum1000000
    bonus 20 win924 tie792 lose998284 checksum1000000
    bonus 21 win462 tie462 lose999076 checksum1000000
    bonus 22 win210 tie252 lose999538 checksum1000000
    bonus 23 win84 tie126 lose999790 checksum1000000
    bonus 24 win28 tie56 lose999916 checksum1000000
    bonus 25 win7 tie21 lose999972 checksum1000000
    bonus 26 win1 tie6 lose999993 checksum1000000
    bonus 27 win0 tie1 lose999999 checksum1000000


    (3+1)d10+bonus vs 3d10

    bonus -27 win9999963 tie37 lose0 checksum10000000
    bonus -26 win9999750 tie213 lose37 checksum10000000
    bonus -25 win9999032 tie718 lose250 checksum10000000
    bonus -24 win9997189 tie1843 lose968 checksum10000000
    bonus -23 win9993201 tie3988 lose2811 checksum10000000
    bonus -22 win9985540 tie7661 lose6799 checksum10000000
    bonus -21 win9972069 tie13471 lose14460 checksum10000000
    bonus -20 win9949957 tie22112 lose27931 checksum10000000
    bonus -19 win9915615 tie34342 lose50043 checksum10000000
    bonus -18 win9864663 tie50952 lose84385 checksum10000000
    bonus -17 win9792038 tie72625 lose135337 checksum10000000
    bonus -16 win9692213 tie99825 lose207962 checksum10000000
    bonus -15 win9559506 tie132707 lose307787 checksum10000000
    bonus -14 win9388446 tie171060 lose440494 checksum10000000
    bonus -13 win9174174 tie214272 lose611554 checksum10000000
    bonus -12 win8912850 tie261324 lose825826 checksum10000000
    bonus -11 win8602041 tie310809 lose1087150 checksum10000000
    bonus -10 win8241060 tie360981 lose1397959 checksum10000000
    bonus -9 win7831235 tie409825 lose1758940 checksum10000000
    bonus -8 win7376075 tie455160 lose2168765 checksum10000000
    bonus -7 win6881222 tie494853 lose2623925 checksum10000000
    bonus -6 win6354227 tie526995 lose3118778 checksum10000000
    bonus -5 win5804184 tie550043 lose3645773 checksum10000000
    bonus -4 win5241262 tie562922 lose4195816 checksum10000000
    bonus -3 win4676173 tie565089 lose4758738 checksum10000000
    bonus -2 win4119610 tie556563 lose5323827 checksum10000000
    bonus -1 win3581695 tie537915 lose5880390 checksum10000000
    bonus 0 win3071475 tie510220 lose6418305 checksum10000000
    bonus 1 win2596500 tie474975 lose6928525 checksum10000000
    bonus 2 win2162523 tie433977 lose7403500 checksum10000000
    bonus 3 win1773366 tie389157 lose7837477 checksum10000000
    bonus 4 win1430928 tie342438 lose8226634 checksum10000000
    bonus 5 win1135309 tie295619 lose8569072 checksum10000000
    bonus 6 win885028 tie250281 lose8864691 checksum10000000
    bonus 7 win677303 tie207725 lose9114972 checksum10000000
    bonus 8 win508375 tie168928 lose9322697 checksum10000000
    bonus 9 win373846 tie134529 lose9491625 checksum10000000
    bonus 10 win269007 tie104839 lose9626154 checksum10000000
    bonus 11 win189130 tie79877 lose9730993 checksum10000000
    bonus 12 win129702 tie59428 lose9810870 checksum10000000
    bonus 13 win86590 tie43112 lose9870298 checksum10000000
    bonus 14 win56146 tie30444 lose9913410 checksum10000000
    bonus 15 win35261 tie20885 lose9943854 checksum10000000
    bonus 16 win21374 tie13887 lose9964739 checksum10000000
    bonus 17 win12449 tie8925 lose9978626 checksum10000000
    bonus 18 win6925 tie5524 lose9987551 checksum10000000
    bonus 19 win3649 tie3276 lose9993075 checksum10000000
    bonus 20 win1801 tie1848 lose9996351 checksum10000000
    bonus 21 win820 tie981 lose9998199 checksum10000000
    bonus 22 win337 tie483 lose9999180 checksum10000000
    bonus 23 win121 tie216 lose9999663 checksum10000000
    bonus 24 win36 tie85 lose9999879 checksum10000000
    bonus 25 win8 tie28 lose9999964 checksum10000000
    bonus 26 win1 tie7 lose9999992 checksum10000000
    bonus 27 win0 tie1 lose9999999 checksum10000000


    (3+1)d10+bonus vs (3+1)d10

    bonus -27 win99999963 tie37 lose0 checksum100000000
    bonus -26 win99999713 tie250 lose37 checksum100000000
    bonus -25 win99998745 tie968 lose287 checksum100000000
    bonus -24 win99995897 tie2848 lose1255 checksum100000000
    bonus -23 win99988885 tie7012 lose4103 checksum100000000
    bonus -22 win99973707 tie15178 lose11115 checksum100000000
    bonus -21 win99943896 tie29811 lose26293 checksum100000000
    bonus -20 win99889652 tie54244 lose56104 checksum100000000
    bonus -19 win99796888 tie92764 lose110348 checksum100000000
    bonus -18 win99646200 tie150688 lose203112 checksum100000000
    bonus -17 win99411962 tie234238 lose353800 checksum100000000
    bonus -16 win99061704 tie350258 lose588038 checksum100000000
    bonus -15 win98556023 tie505681 lose938296 checksum100000000
    bonus -14 win97849083 tie706940 lose1443977 checksum100000000
    bonus -13 win96889891 tie959192 lose2150917 checksum100000000
    bonus -12 win95624261 tie1265630 lose3110109 checksum100000000
    bonus -11 win93997567 tie1626694 lose4375739 checksum100000000
    bonus -10 win91958117 tie2039450 lose6002433 checksum100000000
    bonus -9 win89461122 tie2496995 lose8041883 checksum100000000
    bonus -8 win86472990 tie2988132 lose10538878 checksum100000000
    bonus -7 win82975660 tie3497330 lose13527010 checksum100000000
    bonus -6 win78970254 tie4005406 lose17024340 checksum100000000
    bonus -5 win74479724 tie4490530 lose21029746 checksum100000000
    bonus -4 win69550024 tie4929700 lose25520276 checksum100000000
    bonus -3 win64249699 tie5300325 lose30449976 checksum100000000
    bonus -2 win58667653 tie5582046 lose35750301 checksum100000000
    bonus -1 win52909255 tie5758398 lose41332347 checksum100000000
    bonus 0 win47090745 tie5818510 lose47090745 checksum100000000
    bonus 1 win41332347 tie5758398 lose52909255 checksum100000000
    bonus 2 win35750301 tie5582046 lose58667653 checksum100000000
    bonus 3 win30449976 tie5300325 lose64249699 checksum100000000
    bonus 4 win25520276 tie4929700 lose69550024 checksum100000000
    bonus 5 win21029746 tie4490530 lose74479724 checksum100000000
    bonus 6 win17024340 tie4005406 lose78970254 checksum100000000
    bonus 7 win13527010 tie3497330 lose82975660 checksum100000000
    bonus 8 win10538878 tie2988132 lose86472990 checksum100000000
    bonus 9 win8041883 tie2496995 lose89461122 checksum100000000
    bonus 10 win6002433 tie2039450 lose91958117 checksum100000000
    bonus 11 win4375739 tie1626694 lose93997567 checksum100000000
    bonus 12 win3110109 tie1265630 lose95624261 checksum100000000
    bonus 13 win2150917 tie959192 lose96889891 checksum100000000
    bonus 14 win1443977 tie706940 lose97849083 checksum100000000
    bonus 15 win938296 tie505681 lose98556023 checksum100000000
    bonus 16 win588038 tie350258 lose99061704 checksum100000000
    bonus 17 win353800 tie234238 lose99411962 checksum100000000
    bonus 18 win203112 tie150688 lose99646200 checksum100000000
    bonus 19 win110348 tie92764 lose99796888 checksum100000000
    bonus 20 win56104 tie54244 lose99889652 checksum100000000
    bonus 21 win26293 tie29811 lose99943896 checksum100000000
    bonus 22 win11115 tie15178 lose99973707 checksum100000000
    bonus 23 win4103 tie7012 lose99988885 checksum100000000
    bonus 24 win1255 tie2848 lose99995897 checksum100000000
    bonus 25 win287 tie968 lose99998745 checksum100000000
    bonus 26 win37 tie250 lose99999713 checksum100000000
    bonus 27 win0 tie37 lose99999963 checksum100000000


    (3+2)d10+bonus vs 3d10

    bonus -27 win99999144 tie856 lose0 checksum100000000
    bonus -26 win99994406 tie4738 lose856 checksum100000000
    bonus -25 win99978985 tie15421 lose5594 checksum100000000
    bonus -24 win99940749 tie38236 lose21015 checksum100000000
    bonus -23 win99860811 tie79938 lose59251 checksum100000000
    bonus -22 win99712429 tie148382 lose139189 checksum100000000
    bonus -21 win99460270 tie252159 lose287571 checksum100000000
    bonus -20 win99060126 tie400144 lose539730 checksum100000000
    bonus -19 win98458999 tie601127 lose939874 checksum100000000
    bonus -18 win97595575 tie863424 lose1541001 checksum100000000
    bonus -17 win96403498 tie1192077 lose2404425 checksum100000000
    bonus -16 win94816192 tie1587306 lose3596502 checksum100000000
    bonus -15 win92772630 tie2043562 lose5183808 checksum100000000
    bonus -14 win90222988 tie2549642 lose7227370 checksum100000000
    bonus -13 win87133842 tie3089146 lose9777012 checksum100000000
    bonus -12 win83492332 tie3641510 lose12866158 checksum100000000
    bonus -11 win79309116 tie4183216 lose16507668 checksum100000000
    bonus -10 win74619842 tie4689274 lose20690884 checksum100000000
    bonus -9 win69485387 tie5134455 lose25380158 checksum100000000
    bonus -8 win63990811 tie5494576 lose30514613 checksum100000000
    bonus -7 win58240941 tie5749870 lose36009189 checksum100000000
    bonus -6 win52353983 tie5886958 lose41759059 checksum100000000
    bonus -5 win46453976 tie5900007 lose47646017 checksum100000000
    bonus -4 win40663246 tie5790730 lose53546024 checksum100000000
    bonus -3 win35095408 tie5567838 lose59336754 checksum100000000
    bonus -2 win29849500 tie5245908 lose64904592 checksum100000000
    bonus -1 win25005547 tie4843953 lose70150500 checksum100000000
    bonus 0 win20621853 tie4383694 lose74994453 checksum100000000
    bonus 1 win16733775 tie3888078 lose79378147 checksum100000000
    bonus 2 win13354017 tie3379758 lose83266225 checksum100000000
    bonus 3 win10474794 tie2879223 lose86645983 checksum100000000
    bonus 4 win8071204 tie2403590 lose89525206 checksum100000000
    bonus 5 win6105302 tie1965902 lose91928796 checksum100000000
    bonus 6 win4530374 tie1574928 lose93894698 checksum100000000
    bonus 7 win3294989 tie1235385 lose95469626 checksum100000000
    bonus 8 win2346613 tie948376 lose96705011 checksum100000000
    bonus 9 win1634553 tie712060 lose97653387 checksum100000000
    bonus 10 win1112089 tie522464 lose98365447 checksum100000000
    bonus 11 win737868 tie374221 lose98887911 checksum100000000
    bonus 12 win476558 tie261310 lose99262132 checksum100000000
    bonus 13 win298952 tie177606 lose99523442 checksum100000000
    bonus 14 win181670 tie117282 lose99701048 checksum100000000
    bonus 15 win106598 tie75072 lose99818330 checksum100000000
    bonus 16 win60142 tie46456 lose99893402 checksum100000000
    bonus 17 win32450 tie27692 lose99939858 checksum100000000
    bonus 18 win16626 tie15824 lose99967550 checksum100000000
    bonus 19 win8014 tie8612 lose99983374 checksum100000000
    bonus 20 win3590 tie4424 lose99991986 checksum100000000
    bonus 21 win1471 tie2119 lose99996410 checksum100000000
    bonus 22 win539 tie932 lose99998529 checksum100000000
    bonus 23 win171 tie368 lose99999461 checksum100000000
    bonus 24 win45 tie126 lose99999829 checksum100000000
    bonus 25 win9 tie36 lose99999955 checksum100000000
    bonus 26 win1 tie8 lose99999991 checksum100000000
    bonus 27 win0 tie1 lose99999999 checksum100000000


    (3+2)d10+bonus vs (3+1)d10

    bonus -27 win999999144 tie856 lose0 checksum1000000000
    bonus -26 win999993550 tie5594 lose856 checksum1000000000
    bonus -25 win999972535 tie21015 lose6450 checksum1000000000
    bonus -24 win999912428 tie60107 lose27465 checksum1000000000
    bonus -23 win999768501 tie143927 lose87572 checksum1000000000
    bonus -22 win999465509 tie302992 lose231499 checksum1000000000
    bonus -21 win998886687 tie578822 lose534491 checksum1000000000
    bonus -20 win997862137 tie1024550 lose1113313 checksum1000000000
    bonus -19 win996157333 tie1704804 lose2137863 checksum1000000000
    bonus -18 win993461657 tie2695676 lose3842667 checksum1000000000
    bonus -17 win989381191 tie4080466 lose6538343 checksum1000000000
    bonus -16 win983438047 tie5943144 lose10618809 checksum1000000000
    bonus -15 win975080441 tie8357606 lose16561953 checksum1000000000
    bonus -14 win963702167 tie11378274 lose24919559 checksum1000000000
    bonus -13 win948673856 tie15028311 lose36297833 checksum1000000000
    bonus -12 win929381155 tie19292701 lose51326144 checksum1000000000
    bonus -11 win905271046 tie24110109 lose70618845 checksum1000000000
    bonus -10 win875900776 tie29370270 lose94728954 checksum1000000000
    bonus -9 win840989504 tie34911272 lose124099224 checksum1000000000
    bonus -8 win800467232 tie40522272 lose159010496 checksum1000000000
    bonus -7 win754517563 tie45949669 lose199532768 checksum1000000000
    bonus -6 win703600922 tie50916641 lose245482437 checksum1000000000
    bonus -5 win648456932 tie55143990 lose296399078 checksum1000000000
    bonus -4 win590080523 tie58376409 lose351543068 checksum1000000000
    bonus -3 win529676171 tie60404352 lose409919477 checksum1000000000
    bonus -2 win468589806 tie61086365 lose470323829 checksum1000000000
    bonus -1 win408227110 tie60362696 lose531410194 checksum1000000000
    bonus 0 win349959341 tie58267769 lose591772890 checksum1000000000
    bonus 1 win295026676 tie54932665 lose650040659 checksum1000000000
    bonus 2 win244440520 tie50586156 lose704973324 checksum1000000000
    bonus 3 win198929467 tie45511053 lose755559480 checksum1000000000
    bonus 4 win158918836 tie40010631 lose801070533 checksum1000000000
    bonus 5 win124543365 tie34375471 lose841081164 checksum1000000000
    bonus 6 win95679983 tie28863382 lose875456635 checksum1000000000
    bonus 7 win71997915 tie23682068 lose904320017 checksum1000000000
    bonus 8 win53015051 tie18982864 lose928002085 checksum1000000000
    bonus 9 win38156574 tie14858477 lose946984949 checksum1000000000
    bonus 10 win26806979 tie11349595 lose961843426 checksum1000000000
    bonus 11 win18355027 tie8451952 lose973193021 checksum1000000000
    bonus 12 win12226054 tie6128973 lose981644973 checksum1000000000
    bonus 13 win7904725 tie4321329 lose987773946 checksum1000000000
    bonus 14 win4947573 tie2957152 lose992095275 checksum1000000000
    bonus 15 win2987960 tie1959613 lose995052427 checksum1000000000
    bonus 16 win1733769 tie1254191 lose997012040 checksum1000000000
    bonus 17 win961354 tie772415 lose998266231 checksum1000000000
    bonus 18 win505786 tie455568 lose999038646 checksum1000000000
    bonus 19 win250140 tie255646 lose999494214 checksum1000000000
    bonus 20 win114874 tie135266 lose999749860 checksum1000000000
    bonus 21 win48217 tie66657 lose999885126 checksum1000000000
    bonus 22 win18084 tie30133 lose999951783 checksum1000000000
    bonus 23 win5867 tie12217 lose999981916 checksum1000000000
    bonus 24 win1579 tie4288 lose999994133 checksum1000000000
    bonus 25 win324 tie1255 lose999998421 checksum1000000000
    bonus 26 win37 tie287 lose999999676 checksum1000000000
    bonus 27 win0 tie37 lose999999963 checksum1000000000

       Сообщение № 22. 13.2.2012, 09:30, Фех пишет:
    Фех
    Очень социальный

    *
    Фантазёр
    Сообщений: 7402
    профиль

    Репутация: 305
    Цитата(Фех)
    если у кого-нибудь есть высокая мат. подготовка

    Так... человека я нашел. Осталось найти и общий язык :)
    Результаты уже радуют. :respect:
    Прогу жду. Да.
    Графики сможет рисовать?

       Сообщение № 23. 13.2.2012, 22:18, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    bookwarrior
    Цитата(bookwarrior)
    Культурно оценить, насколько это приближение отличается от реальных вероятностей будет весьма геморно.

    Ну вообще 100 - уже достаточно большое число, чтобы различие моделирования и точной величины было несущественным, как показывает опыт численных экспериментаторов.
    Можно сравнить насколько отличается 1000 и 10 000 бросков кривая распределения по гладкости, т. е. в нашем случае по классу точности.

    Цитата(bookwarrior)
    Вообще-то, броски, которые были независимы в adY уже не независимы в (a+1)dY ,
    ибо от результатов бросков зависит, какая кость выброшена, значит и какие кости остались. Ковариация, конечно, будет маленькая, но будет... так что процесс уже слегка не пуассоновский.

    Пуассоновским он и так не особо был, ибо пик совершенно не острый. Это скорее гауссов случай, и кривая очень похожая, единственно, что со смещенным центром

       Сообщение № 24. 13.2.2012, 22:55, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Doll
    Не зная, насколько здесь уместен флейм, спрятал под more

    Цитата(Doll)
    Ну вообще 100 - уже достаточно большое число, чтобы различие моделирования и точной величины было несущественным, как показывает опыт численных экспериментаторов.


    Ага. дайс d100 достаточно точно промоделирует равномерное распределение по отрезку [0,1]. Именно по-этому достаточно неважно, посчитать распределение результатов броска 10d100, или распределение 10d200 и отнормировать (будет коэффициент 101/201). А вот работеат ли этот трюк с d10, -- это вопрос о том, достаточно ли велико число 10. А про него не факт, что его можно считать "достаточно большим". Кстати, Фех говорил, что его не только d10 интересуют.

    Втрое и главное.
    Цитата(Doll)
    Это скорее гауссов случай, и кривая очень похожая, единственно, что со смещенным центром

    Повторяю. К гауссовскому распределнию ( функция плотности (const)*exp(-(x-const)^2/const) стремится сумма независимых случайных величин. Тут величины не независимы (см. пред камент), хотя и с довольно маленькой ковариацией. Оценивать, насколько из-за этого распределние будет отличаться от гауссова я не готов. Кто смелый -- фперед!)



       Сообщение № 25. 14.2.2012, 02:15, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    bookwarrior
    Цитата(bookwarrior)
    га. дайс d100 достаточно точно промоделирует равномерное распределение по отрезку [0,1]. Именно по-этому достаточно неважно, посчитать распределение результатов броска 10d100, или распределение 10d200 и отнормировать (будет коэффициент 101/201). А вот работеат ли этот трюк с d10, -- это вопрос о том, достаточно ли велико число 10. А про него не факт, что его можно считать "достаточно большим". Кстати, Фех говорил, что его не только d10 интересуют.


    я предлагала большую серию экспериментов. Число 100 - достаточно велико для усреднения. Факт. Практически для любого эксперимента.

    Цитата(bookwarrior)
    Повторяю. К гауссовскому распределнию ( функция плотности (const)*exp(-(x-const)^2/const) стремится сумма независимых случайных величин. Тут величины не независимы (см. пред камент), хотя и с довольно маленькой ковариацией. Оценивать, насколько из-за этого распределние будет отличаться от гауссова я не готов. Кто смелый -- фперед!)

    Распределение независимых величин легко бы оценивалось с помощью интеграла ошибок.
    Оценивать вообще можно с учетом того, что поправка - тоже величина случайная и, в целом, независимая. Поэтому кардинально вид кривой у нас будет иметь смещенный центр и легкую ассиметричность в сторону бОльших значений. Насколько оно будет близко к нормальному зависит от соотношения X/A, чем оно меньше, тем, естественно, ближе.

    Другое дело, что вывести аналитическую зависимость можно для каждого конкретного числа граней, и это будет довольно громоздкий полином в стиле: "{плотность вероятности независимого броска} {плотность вероятности наименьших костей} = имеем геометрическую вероятность результата => преобразуем ее в искомую плотность вероятности"

       Сообщение № 26. 14.2.2012, 03:17, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Doll вы как-то странно игнорируете аргументы.


    Цитата(Doll)
    Распределение независимых величин легко бы оценивалось с помощью интеграла ошибок.

    -- да, это ровно то, что у меня написано, вы ровно это утверждение и процитировали
    Цитата(Doll)
    Оценивать вообще можно с учетом того, что поправка - тоже величина случайная и, в целом, независимая.

    -- так не независимая, блин! аргументация в пред. каменте.

    Насчет смещенного центра. Опять же, если вас интересует центр для броска xd(очень много), то все считается влет:
    матожидание результата броска d(очень много) = (очень много)/2 (мне удобнее считать, что на кости N написаны числа от 0 до N-1). Матожидание наименьшей кости из x костей = (очень много)/(x+1). Так что матожидание броска из x костей без учета наименьшей (x/2 - 1(x+1))*(N-1) --- опять же внимание! это предельное значение при N, стремящемся к бесконечности. Насколько оно отличается от реального для конкретного значения N=10 я сказать влет не берусь.

       Сообщение № 27. 15.2.2012, 00:21, Doll пишет:
    Doll ( Offline )
    Экзистенциальная шелуха

    *
    Великий инквизитор
    Сообщений: 12222
    профиль

    Репутация: 610
    bookwarrior
    Цитата(bookwarrior)
    -- так не независимая, блин! аргументация в пред. каменте.

    Наименьшая кость у нас выпадает независимо? совершенно независимо.
    Вероятность распределения наименьших костей можно построить? Можно!
    Имеем типичную задачу на двумерную вероятность {пространство исходного броска}{пространство наименьших костей}. Следует учесть, что пространство костей стоит искусственно ограничить, так как при максимальную сумме, например, должна отброситься и большая кость, но это будет областью определения пространства и не более того.

    Как свернуть это в компактный вид - не знаю, думать на эту тему, честно говоря, лениво, поскольку ход решения мне, в принципе, ясен.

       Сообщение № 28. 15.2.2012, 00:22, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Мэтры, поскольку в ближайшие дни мне будет не до развлекательного программирования, выкладываю паблик линк на программку, которой все вышеописанное считалось.
    http://dl.dropbox.com/u/12021346/quasimatrix4.cs

    Программа уже есть, а юзерфрендли интерфейса я к ней пока не делал, так что прочтите

    инструкцию, как с этим работать

    Во-первых, как вы догадались, загрузите этот файл в среду для C#

    для использования это понимать не обязательно

    Общая архитектура такова. Заданному типу броска (например d4+d5+2d6+d10 :) ) сопоставлям трехмерный массив, у которого в поле [a,b,c] записано число исходов у которых: наименьшее выпавшее значение равно a, втрое по малости значение равно b (т.е. b всегда больше или равно a), сумма всех значений равна c.


    Здесь и далее по дайсом dn пониматеся кость, выдающая значения от 0 до n, в стандартной терминологии это скорее d(n+1)-1,
    но нам будет удобнее именно такая.


    Вам нужно написать, какие два броска вы хотите законтестить. Для этого:
    1. Присвойте констате N значение, равное наибольшей из используемых костей.
    (Например, если хотите сравнивать 2d3+d4+d17 vs 2d4+4d5 надо написать N=17)
    Константе size присвойте значение набольшее значение суммы номеров костей в ваших бросках
    (в нашем примере: максимум из 2*3+4+17=27 и 2*4+4*5=28 --- максимум равен 28).
    Можно присвоить и большее значение, слегка потеряв в быстродействии.
    2. предусмотрены следующие типы бросков: compress_type1=0 -- для первого брока считается просто сумма выпавших значений.
    compress_type1=1 для первого броска считается сумма значений без наименьшего.
    compress_type1=2 для первого броска считается сумма значений без наименьшего и второго по величине.

    compress_type2 --- то же самое для второго броска.

    Присвойте переменным требуемые значения.

    3. Самое сложное. Пишем код, который объяснит, что за броски обсчитываем. Нам надо присвоить таблицу первого броска переменной Z, второго --- переменной T. Для этого есть следующие средства:
    Функция createdice(N) создает таблицу результатов броска dN, функция multiply(X,Y) по таблицам каких-то бросков X и Y,
    создает таблицу броска их объединения.

    Напиример: если X -- таблица броска 2d3+d4+d17, а Y -- таблица броска 2d4+4d5, то multiply(X,Y) -- таблица броска 2d3+3d4+4d5+d17.

    Уже догадались, как написать код, который присвоит перменным нужные броски? Например, хотим мы посчитать бросок 2d3+d4+d17. Пишем в мейне (сразу после присваиваний compress_type1 и compress_type2 нужных значений):

    X=createdice(3); // теперь в X записан бросок одной кости d3
    Z=multiply(X,X); // теперь в Z записан росок 2d3
    X=createdice(4); // теперь в X записан росок d4
    Z=multiply(X,Z); // теперь в Z записан росок 2d3+d4
    X=createdice(17); // теперь в X записан росок d17
    Z=multiply(X,Z); // теперь в Z записан росок 2d3+d4+d17 ---- уффф, победа!

    Не забудьте дальше описать второй бросок, он должен быть присвое переменной T. (неиспользование буквы Y --- атавизм борьбы за быстродействие. Там можно спорядком умножения химичить. Учше чтобы левым стоял более простой бросок из двух. )

    Не забудьте удалить или закоментировать все старые присваивания между compress_type2 = 1; и compress(Z, a, b, compress_type1);

    4. Все готово, запускаете программу, результаты дублируются в консоль и файл, формат такой, как я уже выкладывал.

    Напосдедок. Кому не нравится формат вывода результатов --- перепишите процедуры
    public static void showresult(StreamWriter fOut, int[] a, int[] b)
    и
    public static void showcontest(StreamWriter fOut)
    по своему вкусу.


    Добавлено через 5 мин. 53 с.

    Цитата(Doll)
    Наименьшая кость у нас выпадает независимо? совершенно независимо.


    Вы уверены, что лучше объяснять, в чем по-моему у вас ошибка здесь (зафлуживая тему), а не в личке?

       Сообщение № 29. 15.2.2012, 07:52, CTPAHHUK пишет:
    CTPAHHUK ( Offline )
    Dixi

    *
    Владыка Тьмы
    Сообщений: 4103
    профиль

    Репутация: 145
    Цитата(bookwarrior)
    Программа уже есть, а юзерфрендли интерфейса я к ней пока не делал, так что прочтите


    Это ужасно анфрендли интерфейс, на мой взгляд :). Но суть не в этом. Сравнить два броска AdB довольно легко, нужно просто написать распределение броска вида AdB-XdY. Мне было бы интересно посмотреть на более хитрые варианты с отбрасыванием меньших значений, перебросами и прочими свистелками. Такое есть?

       Сообщение № 30. 15.2.2012, 12:47, bookwarrior пишет:
    bookwarrior ( Offline )
    заслуженный мимокрокодил форума

    *
    Владыка Тьмы
    Сообщений: 7670
    профиль

    Репутация: 220
    Отбрасывание наименьшего есть. В инструкции под more написано. в пункте 2.

    Добавлено через 1 мин. 38 с.

    Перебросы... Сформулируйте четко, что это такое, и я через некоторое время это добавлю.

    1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей);
     Страницы: (2) [1] 2  Открыть все 
     Закрыта
    Новая тема
     Опрос


    Закрыто Doll 16-02-2012: по просьбе топикстартера
    >  Список форумов · 
  • Университет
  • Математическая задачка
  • Здравствуй, Гость (Вход · Регистрация)
    « Предыдущая тема | Университет | Следующая тема »

    Яндекс.Метрика