0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 4
|
|
1 | |
Как вычислить вероятность победы одного из игроков?29.01.2017, 14:55. Показов 3472. Ответов 16
Метки нет (Все метки)
Всем привет! Впервые на этом форуме.
Во время разработки игр довольно часто приходится просчитывать вероятность того или иного события, обычно для решения несложных задач мне хватает знаний с первого курса универа, но сейчас с толкнулся с более сложной задачей для меня. Я понемногу изучаю теорию вероятности но дается она не просто, и все более менее сложные задачи решаю методом монте-карло. Буду благодарен если вы поможете мне ПРАВИЛЬНЫМ способом решить одну несложную задачу. Задача: Красный игрок (здоровье: 100, урон: от 10 до 15) Синий игрок (здоровье: 90, урон: от 8 до 20) Каждый ход игроки одновременно наносят урон друг другу (у урона есть небольшой разброс указанный выше). Если оба игрока умирают в одном ходе, победитель определяется случайным образом, ничьи не может быть. Как вычислить вероятность победы одного из игроков?
0
|
29.01.2017, 14:55 | |
Ответы с готовыми решениями:
16
Вычислить вероятность победы одного из соперников и ничьи в 2 оставшихся играх Какова вероятность, что хотя бы у одного из игроков соберутся все карты одного достоинства Какова вероятность победы, если игра ведется до полного разорения одного из участников Какова вероятность того что у одного из игроков будут все 13 карт одной масти? |
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 4
|
|
29.01.2017, 17:42 [ТС] | 3 |
Монте-карло конечно простой выход, но интересно как решить эту задачу сложным способом )
0
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
30.01.2017, 15:33 | 5 |
Уточняю условия, для которых проводился расчет.
Силы урона (8-20 и 10-15) имеют равномерное распределение. Если уровень здоровья игроков на одном и том же ходе у обоих становится <=0, то победа присваивается игрокам с вероятностями 1/2 - 1/2. Результат моделирования приведен в файле. В результате синий игрок победит с вероятностью 0.52531, проиграет с вероятностью 0.47469
1
|
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 4
|
|
30.01.2017, 16:05 [ТС] | 6 |
Спасибо!
Это самый простой способ решить эту задачу, но хочется найти линейное решение.
0
|
31.01.2017, 06:55 | 7 |
Что это за термин - "линейное"?
У меня получилоcь так: чистая победа красного 88.37% чистая победа синего 0.92% одновременно умерли 10.71% Что интересно - результаты кардинально отличаются от полученных "самым простым способом"
0
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
|
31.01.2017, 07:13 | 8 |
А каково распределение урона при ударе (равномерное, нормальное, дискретное непрерывное и т.д.)?
0
|
1957 / 1066 / 162
Регистрация: 06.12.2012
Сообщений: 4,677
|
|
31.01.2017, 07:52 | 9 |
zer0mail, если оба умерли, то 10,71% нужно между ними поделить поровну.
Добавлено через 1 минуту mevn, скорее всего равномерно дискретное.
0
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
31.01.2017, 08:00 | 10 |
Равномерное дискретное.
Несколько странный результат. Оценим положение мат.ожидания. Для победы красному в среднем надо 90/((10+15)/2)=90/12.5=7.2 хода Для победы синему в среднем надо 100/((8+20)/2)=100/14 =7.143 хода То есть в среднем синий имеет небольшое преимущество. При классивфикации с ничьей получаю следующий результат чистая победа красного 26.51% чистая победа синего 31.57% одновременно умерли 41.92%
0
|
31.01.2017, 08:52 | 11 |
Это очевидно, но три числа дают более полную картину. После того, как поделили, обратную операцию сделать невозможно.
Добавлено через 1 минуту Вообще-то у красного 100 Добавлено через 1 минуту Равномерное
0
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
31.01.2017, 09:18 | 12 |
Вообще я считал что воюют рыцари, а не самураи.
Игрок наносит повреждение противнику, а не делает харакири. Вот даже цитата Равномерное может быть непрерывным и дискретным, тут я делал предположение что дискретное, но может быть и непрерывное в условиях это не указано.
0
|
31.01.2017, 09:34 | 13 |
Дискретное, разумеется. ТС неясно написал, как понимать урон: 10-15 наносится красному или синему. Если 10-15 другому, то Ваш расчет правильный.
Добавлено через 3 минуты Красный 26.51% Синий 31.57% Ничья 41.92% Добавлено через 2 минуты Да-а-а, сказывается, что я в игры-бои не играю
0
|
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
|
|
31.01.2017, 10:47 | 14 |
Можно здесь заметить марковскую цепь - громоздкая, но компьютеру это не страшно. Руками-то, конечно, не посчитаешь.
0
|
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 4
|
|
31.01.2017, 11:45 [ТС] | 15 |
Обычно нужно считать по 500 таких сражений с разными характеристиками, что бы контролировать сложность прохождения игры. И раскладывать каждое сражение в Excel по ходам, не получится, нужен другой подход. Конечно есть вариант все делать юнит тестами в коде, но этот подход совсем не гибкий, хочется оставаться в рамках Excel.
0
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
|
31.01.2017, 15:53 | 16 |
В принципе при большом числе ударов n распределение урона аппроксимируется нормальным распределением с параметрами
<x> = n (a+b)/2 sigma2=n* ((b-a+1)2-1)/12 В этом случае у меня получилось Красный 21,8% Синий 33,2% Ничья 45% Возможно где-то в расчетах напутал.
1
|
05.02.2017, 09:01 | 17 |
Не надо давать советов сделать то, что уже сделано. Марковскую цепь уже рассчитали и привели результаты: SSC - в Excel, я - на C++.
0
|
05.02.2017, 09:01 | |
05.02.2017, 09:01 | |
Помогаю со студенческими работами здесь
17
Найти вероятности событий: все тузы попадут к одному из игроков; двое определенных игроков не получат ни одного туза Как просчитать вероятность победы одной из команд, если количество атак каждой команды 10 Найти вероятность победы Вероятность победы шахматиста Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |