Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Задача о платоновых костях

Автор Bhudh, мая 20, 2011, 22:49

0 Пользователи и 1 гость просматривают эту тему.

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

RawonaM


Квас

Сразу вот не подписался и такую тему пропустил. Условие, конечно, потрясающее: Оля с Димой играют миллион партий платоновыми телами... Озадачилсо. Ещё ничьи считать...
Пишите письма! :)

RawonaM


Валентин Н

ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Марбол

Здравствуйте!

Насколько я понял, для расчёта математического ожидания олиных побед надо вычислить члены полиномиального разложения для полной группы равновероятных событий (восьми для Оли и двенадцати для Димы), сгруппировать их, в том и другом разложении, по результату одного тура бросков (чтобы суммировать вероятности, отвечающие одному и тому же результату N) и по олиному разложению рассчитать математическое ожидание всех результатов, вероятность которых у неё больше, чем у Димы. Правда, я не знаю, как аналитически выразить число способов, которыми набирается заданное счётное число из энного количества счётных слагаемых.

Марбол

Здравствуйте!

То есть, с помощью коэффициентов олиного полиномиального распределения вычисляем для каждого диминого результата вероятность P олиных побед, соответствующее число её побед на миллион N = 1000000*P, умножаем на соответствующий вес: M = N*P, и по сумме всех Ni*Pi вычисляем искомое математическое ожидание... Так правильно?

Ömer

Имхо это не математическая, а программистская задачка для школы. С компьютером решается в лоб.

$Olya = @(0)*49
foreach ($i in 1..8)
{
    foreach ($j in 1..8)
    {
        foreach ($k in 1..8)
        {
            foreach ($l in 1..8)
            {
                foreach ($m in 1..8)
                {
                    foreach ($n in 1..8)
                    {
                        $Olya[$i+$j+$k+$l+$m+$n]++
                    }
                }
            }
        }
    }
}

$Dima = @(0)*49;
foreach ($i in 1..12)
{
    foreach ($j in 1..12)
    {
        foreach ($k in 1..12)
        {
            foreach ($l in 1..12)
            {
                $Dima[$i+$j+$k+$l]++
            }
        }
    }
}


$OlyaWins = 0;
foreach ($i in 1..48)
{
    foreach ($j in 1..($i-1))
    {
        $OlyaWins += $Olya[$i] / [math]::pow(8,6) * $Dima[$j] / [math]::pow(12,4);
    }   
}
$OlyaWins

Итого $OlyaWins = 0.522008753117221

Сорри за уродский powershell, сижу на нетбуке безо всякой среды.
ya herro, ya merro

RawonaM

Цитата: svarog от июня 19, 2011, 15:27
Имхо это не математическая, а программистская задачка для школы.
Задача очень даже математическая. Когда я скоро буду готовиться к экзамену по теорверу, решу. Щас времени нет.

arseniiv

Offtop
Цитата: Марбол от июня  1, 2011, 18:38
То есть, с помощью коэффициентов олиного полиномиального распределения...
Удивился, и хотел даже вверх прокрутить, посмотреть, неужели Драгана здесь появилась и стала решать математическую задачу. ;D

Цитата: svarog от июня 19, 2011, 15:27
С компьютером решается в лоб.
Ага-ага, теорему о четырёх красках тоже вот примерно так доказали, только не всем нравится.

Валентин Н

ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!


Марбол


RawonaM

Цитата: Марбол от июня 19, 2011, 17:42
Так у меня верная логика решения?
Может быть и верно, но как по мне так слишком запутанно. Щас я попробую подумать.

Ömer

Цитата: Марбол от июня 19, 2011, 17:42
Здравствуйте!

Так у меня верная логика решения?
Что такое "полиномиальное распределение"?
ya herro, ya merro

RawonaM

Напомните мне, как решить такую задачу:

[tex]x_1+ x_2+...+x_5 = 15[/tex]

[tex]x_i \le 8[/tex]

Нужно найти количество вариантов решений.

У меня экзамен по дискретке через неделю, а я это забыл...

Марбол

Здравствуйте!

Сварог, здесь можно вкратце прочесть о полиномиальном распределении: http://dic.academic.ru/dic.nsf/bse/122065/Полиномиальное.
Но у меня ошибка в расуждении: упущено, что Оля и Дима бросают сразу по нескольку костей, что важно для сравнения их очков в каждом туре. Поэтому в полиномиальном распределении, например, для Оли надо взять не восемь равновероятных исходов, а исходы - сумму очков  в одном туре - 8...48, каждый со своей вероятностью. Но что-то слишком муторно.

Квас

Цитата: svarog от июня 20, 2011, 10:09
в магистратуре - дифференциальная геометрия и топология

Ух ты! :up: Завидую. ::)
Пишите письма! :)

RawonaM


Квас

Offtop
У нас на кафедре есть один крупный специалист по дифференциальной геометрии. Занимается такими вещами, как стохастические дифференциальные уравнения на многообразиях. Но на его спецкурсах непонятно было  н и ч е г о.
Пишите письма! :)


LookIn

Цитата: Квас от июня 24, 2011, 20:48

Нет! Не в алгоритме дело. Я же выше писал про «железо»: суть в том, что мы выходим из мира идеального и пользуясь закономерностями мира материального, чтобы получить ответ. А математика полностью идеальна.

Пожалуй Ваш аргумент можно принять по отношению к арифмометру. А что касается компьютера илидаже бухгалтерских счет, не вижу разницы, чем и как мы ставим пометки, карандашем ли на бумаге, косточками на проволоках или электронами на магнитном слое.Я тоже довел решение до числа с помощью компьютераУвидел при этом принципиальную возможность написания формулы подсчета количества способов получения суммы M используя n слагаемых не превосходящих k. Формулу я не получил  :(  :wall: . Мне удалось создать некий итерационный процесс. Попробую его вкратце описать.
Берем полоску бумаги и пишем на ней числа 1...8 вертикально. Берем вторую полоску и пишем на ней те же числа по в обратном порядке.Совмещаем единицы, и видим , что сумму 2 на 2х костях можно получить только адним способом. Смещаем 2ю полоску на клетку вниз, и видим 2 способа получения суммы 3 на 2х костях.Продолжая этот процесс до 8-8 получим количество способов представления каждой суммы 2-16.Оформим это в виде новой 1й полоски( с указанием кол-ва способов получения сумм)Начнем вдоль нее двигать 2ю полоску. Увидим , что сумму 3 можно получить одним способом. Сумму 4 тремя способами. Это 2+2 и 2 способа 3+1. Сумму 5 можно получить 6ю способами. Это 1->1+2, 2->3+2,          3->4+1 Проделав это для обоих наборов костей получим необходимые данные. Далее как у Сварога в той части программы которую он не привел  :)
Я все это проделал в екселе Таблицу прилагою . К сожалению нет времени ее оформить , но надеюсь там и так все понятно

RawonaM

Вспомнил про эту задачу. Попробуем с новыми силами и знаниями.

Цитата: Bhudh от мая 20, 2011, 22:49
Цитата: http://diofant.ru/problem/1786Оля и Дима играют в кости.
У Оли шесть костей в форме октаэдра, и грани каждой из них занумерованы числами от 1 до 8.
У Димы четыре кости в форме додекаэдра, и грани каждой из них занумерованы числами от 1 до 12.
В каждом туре игроки бросают все свои кости по одному разу. Побеждает тот, у кого сумма выпавших очков больше. При равенстве фиксируется ничья.
Каково математическое ожидание количества побед Оли после миллиона туров?

Обозначим случайную величину X — сумма костей Оли.
Обозначим случайную величину Y — сумма костей Димы.
Оля выигрывает, если X-Y>0. Т.к. у нас миллион раундов, то можно считать, что распределение нормальное (по центральной предельной теореме).

Найдем матожидание и дисперсию X-Y.

E[X]=6·4.5=26
E[Y]=4·6.5=27
E[X-Y]=E[X]-E[Y]=1

Дисперсия одного кубика:
[tex]Var(X_i)=\sum_{i=1}^8\frac18(i-4.5)^2=5.25[/tex]
[tex]Var(Y_i)=\sum_{i=1}^{12}\frac1{12}(i-6.5)^2=\frac{143}{12}[/tex]

Дисперсия суммы (кубики независимы):
Var(X)=6·5.25=31.5
Var(Y)=4·143/12=143/3

Var(X-Y)=Var(X)+Var(Y)=31.5+143/3=475/6~79.16666

Выходит X-Y ~ W = N(1,475/6).

Нам нужно найти P{X-Y>0}, но т.к. мы приближаем дискретную целую величину непрерывной, то сделаем поправку и посчитаем P{W≥0.5}.

По таблице нормального распределения высчитываем:
P{W≥0.5}~1-0.47759~0.52241

Что дает примерно тот же результат, полученный выше в лоб:

Цитата: svarog от июня 19, 2011, 15:27
Итого $OlyaWins = 0.522008753117221

Вопрос кто из нас больше округлял, компьютер или приближение к нормальной величине :)
Чтобы узнать ожидаемое количество выигрышев просто умножаем вероятность на миллион, т.е. это 522 тысячи с чем-то.

RawonaM

Значит, выше была аппроксимация, а теперь попробуем посчитать точно.

По формуле отсюда: (wiki/en) Dice#Probability

Вероятность выпадения суммы k на n костях с s гранями:
[tex]F_{s,n}(k)=\frac{1}{s^n}\sum_{i=0}^{\left \lfloor \frac{k-n}{s} \right \rfloor} (-1)^i {n \choose i} {k-si-1 \choose n-1}[/tex]

А поэтому, для олиных костей:
[tex]F_{8,6}(k)=\frac{1}{8^6}\sum_{i=0}^{\left \lfloor \frac{k-8}{6} \right \rfloor} (-1)^i {6 \choose i} {k-8i-1 \choose 6-1}[/tex]

А для диминых костей:
[tex]F_{12,4}(k)=\frac{1}{12^4}\sum_{i=0}^{\left \lfloor \frac{k-4}{12} \right \rfloor} (-1)^i {4 \choose i} {k-12i-1 \choose 4-1}[/tex]

И вероятность выигрыша:
[tex]\sum_{i=6}^{48}\sum_{j=4}^{i-1}F_{8,6}(i) F_{12,4}(j)[/tex] что в принципе одно и то же, что и [tex]\sum_{i=0}^{\infty}\sum_{j=0}^{i-1}F_{8,6}(i) F_{12,4}(j)[/tex]

Достаточно подставить все и посчитать. Можно воспользоваться Максимой.


Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр