В «Свинье» правило «стоп на 20» даёт больше всего очков за ход, но больше партий выигрывает «стоп на 25»: 47,9% против оптимального уровня этой страницы вместо 46,0% — четырёх ходов по 25 хватает до 100, а четырёх по 20 нет. Добавьте одно условие — когда у соперника 71 или больше, бросайте, пока не наберёте 100, — и простые правила дают 48,6–49,5% против идеальной игры, у которой самой потолок 50%. Тот, кто начинает, выигрывает 53,1% партий двух оптимальных игроков; на этой странице первого определяет бросок кости, ровно 50 на 50.
У «Свиньи» много домашних вариантов — с двумя костями, другой целью, сгоранием всего банка на двух единицах. Числа на этой странице относятся к её собственным правилам, прочитанным из кода:
Начинать выгодно. В партии двух оптимальных игроков первый выигрывает 53,06% — ровно столько же получили Неллер и Прессер в 2004 году. Если оба останавливаются на 20, первый выигрывает 53,47%. Так что, какой бы стратегии вы ни держались, когда жребий выпал вам, ждите примерно на шесть побед из ста больше, чем когда он выпал компьютеру.
Довод за 20 — простая арифметика. Если на ходе k очков, ещё один бросок в среднем приносит 4 очка, когда выпадает не единица (5 раз из 6), и отнимает k, когда выпадает она (раз из 6). Бросать выгодно, пока 20/6 больше k/6, то есть пока k меньше 20. Поэтому «стоп на 20» даёт больше всего очков в банк за ход: в среднем 8,14.
| Стоп на | Ходов, дошедших до цели | Очков в банк за ход, в среднем |
|---|---|---|
| 15 | 47,0% | 7,85 |
| 20 | 37,6% | 8,14 |
| 25 | 30,0% | 8,00 |
| 30 | 23,9% | 7,58 |
Но в «Свинье» побеждает тот, кто первым дошёл до 100, а не тот, кто больше всех записал за ход, и разница заметна. При «стопе на 20» удачный ход приносит 20–25 очков, и таких ходов обычно нужно пять; при «стопе на 25» хватает четырёх. Вот точные шансы на победу с постоянным порогом против каждого уровня этой страницы:
| Ваш стоп на | против «стоп на 20» | против «держит темп» | против «оптимальной стратегии» |
|---|---|---|---|
| 15 | 44,3% | 40,1% | 41,2% |
| 18 | 47,2% | 43,5% | 44,1% |
| 20 | 50,0% | 44,8% | 46,0% |
| 22 | 48,3% | 44,8% | 44,6% |
| 24 | 50,8% | 47,5% | 47,8% |
| 25 | 51,2% | 47,1% | 47,9% |
| 30 | 46,1% | 41,6% | 42,6% |
| 33 | 47,3% | 47,0% | 45,4% |
Кривая не гладкая: 22 хуже и 20, и 25, а 33 лучше 30. Каждая такая ступенька — порог, на котором меняется число нужных удачных ходов. Из всех постоянных порогов от 12 до 40 лучший против уровней «стоп на 20» и «оптимальная стратегия» — 25, а против «держит темп» — 24.
Против уровня «стоп на 20» ваш собственный стоп на 20 — зеркальная партия, ровно 50%. Стоп на 25 обыгрывает этот уровень в 51,2% случаев.
Тодд Неллер и Клифтон Прессер решили эту игру в 2004 году (статья «Optimal Play of the Dice Game Pig»). Мы повторили расчёт независимо: итерация ценности по всем состояниям — ваш банк, банк соперника, очки хода — с точностью 10−14. В таблице — результат: при какой сумме за ход оптимальный игрок перестаёт бросать и останавливается.
| Ваш банк ↓ / его → | 0 | 20 | 40 | 60 | 80 | 90 |
|---|---|---|---|---|---|---|
| 0 | 21 | 23 | 26 | 32 | 49 | до 100 |
| 20 | 19 | 21 | 24 | 30 | 39 | до 100 |
| 40 | 18 | 19 | 21 | 24 | до 100 | до 100 |
| 60 | 16 | 18 | 16 | 18 | до 100 | до 100 |
| 70 | 12 | 11 | 11 | до 100 | до 100 | до 100 |
| 80 | до 100 | до 100 | до 100 | до 100 | до 100 | до 100 |
Из неё видны три закономерности, которые легко запомнить:
Поверхность бугристая, как и сказано в статье под игрой: с 20 в банке оптимальный игрок останавливается на 30 против соперника с 60, но на 25 — против соперника с 70. Точно её не воспроизводит ни одна формула, поэтому правила из следующего раздела — приближения.
Таблица, которую страница строит для верхнего уровня, совпадает с нашей с точностью до 0,000002 в каждом состоянии и принимает то же решение в 494 999 из 495 000 состояний, где есть выбор. Единственное исключение — 41 против 0 с 17 очками на ходе — почти ничья: варианты различаются на 0,00002 процентного пункта.
Самое ценное, что можно добавить к любому постоянному порогу, — условие гонки: как только у соперника 71 или больше, перестаньте останавливаться и бросайте до 100. После осторожного стопа кость к вам там чаще всего уже не вернётся вовремя. Эвристика самих Неллера и Прессера, «держи темп и заканчивай гонку», добавляет вторую идею: сдвигать порог на одно очко за каждые восемь очков разницы в счёте.
| Ваше правило | против «стоп на 20» | против «держит темп» | против «оптимальной стратегии» |
|---|---|---|---|
| Стоп на 20 | 50,0% | 44,8% | 46,0% |
| Стоп на 25 | 51,2% | 47,1% | 47,9% |
| Стоп на 20; когда у соперника 71+, бросать до 100 | 54,5% | 50,5% | 48,6% |
| Стоп на 25; когда у соперника 71+, бросать до 100 | 53,5% | 49,9% | 48,7% |
| Держи темп и заканчивай гонку: если у кого-то 71+, бросать до 100; иначе стоп на 21 + (его банк − ваш) / 8 с округлением | 54,6% | 51,1% | 49,5% |
| Оптимальная стратегия | 54,0% | 51,4% | 50,0% |
| Наилучшая возможная стратегия против этого уровня | 55,5% | 52,9% | 50,0% |
В этой таблице стоит заметить две вещи. Во-первых, «держи темп и заканчивай гонку» уступает идеальной игре всего полпункта: 49,5% против 50,0%. Во-вторых, оптимальная стратегия — не лучший способ обыгрывать слабого соперника. Она оптимальна против оптимального соперника; против «стопа на 20» она выигрывает 54,0%, а стратегия, рассчитанная именно против этого уровня, — 55,5%, и даже простое правило «держи темп» там обходит оптимальное.
«С округлением» — до ближайшего целого. Пример: у вас 30, у соперника 54. Он впереди на 24, 24 / 8 = 3 — останавливайтесь на 21 + 3 = 24. При ваших 54 против его 30 — на 21 − 3 = 18.
Все три уровня играют по тем же правилам, что и вы, и бросают ту же кость; никто из них не жульничает.
| Банк компьютера | Ваш банк | «Держит темп» останавливается на |
|---|---|---|
| 0 | 0 | 21 |
| 0 | 40 | 26 |
| 40 | 0 | 16 |
| 0 | 70 | 29 |
| 0 | 71 | бросает до 100 |
| 80 | 30 | 15 |
Последняя строка — особенность, о которой стоит знать. В статье под игрой сказано, что этот уровень бежит к 100, «как только чей-то банк подбирается к финишу», но в коде гонку включает только ваш банк, а в правиле Неллера и Прессера — любой. Когда у компьютера 80, а вы далеко позади, он записывает мелкие ходы по 15 вместо того, чтобы добить партию. Эта прореха приносит вам почти целый пункт: оптимальная игра выигрывает у этого уровня 51,4%, а у правила из статьи Неллера и Прессера выигрывала бы 50,5%.
Много. Даже самое слабое из разумных правил в таблицах выше выигрывает у идеальной игры больше четырёх партий из десяти, а разница между хорошим правилом и простым — несколько процентных пунктов. На коротком матче она тонет в случайности. Вот шанс выиграть больше половины партий матча против уровня «оптимальная стратегия»:
| Партий в матче | Стоп на 20 (46,0% за партию) | Оптимальная игра (50,0% за партию) |
|---|---|---|
| 10 | 28% | 38% |
| 50 | 24% | 44% |
| 100 | 18% | 46% |
| 500 | 3% | 48% |
Ровно половина побед здесь не считается выигрышем матча — поэтому даже столбец с 50% остаётся ниже половины. За пятьдесят партий четырёхпунктовое преимущество хорошей игры над «стопом на 20» всё ещё меньше разброса: одно стандартное отклонение вашего результата за пятьдесят партий — семь пунктов. Чтобы разница стала очевидной, нужно несколько сотен партий.
Точные шансы против каждого уровня немного зависят от того, кто начинает: со стопом на 20 против уровня «оптимальная стратегия» вы выигрываете 49,2% партий, которые начинаете сами, и 42,9% тех, что начинает он.
Точный оптимум зависит от обоих счётов и уже посчитан (Неллер и Прессер, 2004), но короткое правило подходит к нему на полпункта: если у кого-то из игроков 71 или больше, бросайте, пока не наберёте 100; иначе останавливайтесь на 21 плюс отрыв соперника, делённый на 8. Против идеальной игры это правило выигрывает 49,5% партий, сама идеальная игра — 50%.
«Стоп на 20» даёт больше всего очков в банк за ход — в среднем 8,14, — но не больше всего побед. Против идеальной игры он выигрывает 46,0% партий, а «стоп на 25» — 47,9%: четырёх ходов по 25 хватает до 100, а по 20 обычно нужно пять. Ещё больше даёт другое: перестать останавливаться, когда у соперника 71 или больше.
Есть. При цели 100 первый игрок выигрывает 53,06% партий у оптимального соперника, будучи оптимальным сам, и 53,47%, если оба останавливаются на 20. На этой странице первого определяет бросок кости, так что преимущество достаётся каждой стороне ровно в половине партий.
В начале партии при равном счёте — примерно на 20–25 очках за ход. Отстаёте — останавливайтесь позже, ведёте — раньше: при 0 против 60 оптимальный игрок останавливается только на 32. Когда у соперника под 80 и больше (тем раньше, чем больше у вас самих) или вам нужно 20 и меньше, не останавливайтесь вовсе — бросайте до победы.
Да. Тодд Неллер и Клифтон Прессер в 2004 году посчитали оптимальную стратегию для «Свиньи» вдвоём до 100 очков — итерацией ценности примерно по полумиллиону состояний. При оптимальной игре первый выигрывает 53,06%. Решена — не значит предрешена: оптимальный игрок всё равно проигрывает сильному сопернику почти половину партий.
Часто. Против уровня «оптимальная стратегия» на длинной дистанции больше 50% не получить, а приличное правило даёт 48–49,5%. У «стопа на 20» можно выигрывать до 55,5%, у «держит темп» — до 52,9%: например, останавливаясь около 20–25 и бросая до 100, как только компьютер перешагнёт 71.