\(5\) равные числа приводят к подвоху. Однако вероятность этого зависит от того, что вы считаете попыткой: один бросок \(5\) кубиков или полный ход, в течение которого вы продолжаете совпадать с кубиками и перебрасываете их \(2\) раз. Здесь мы используем \(5\) игральные кости с числами \(1\) до \(6\) и независимыми результатами. Каждый трюк считается успехом; вероятность, которую вы ищете, не ограничивается определенным количеством точек, например \(6\) .
Согласно инструкциям игры , перед каждым дополнительным броском вы можете еще раз решить, какие кубики останутся лежать. Наша единственная цель — какой-то трюк, а не лучший общий результат в игре. Один бросок дает \(6^5=7776\) одинаково вероятные результаты при дифференцировании игральных костей. Из них \(6\) показывают одинаковое число на всех кубиках. Таким образом, вероятность равна \(\frac{6}{7776}=\frac{1}{1296}\) . Как только взятка достигнута, вы заканчиваете ход; Всего разрешено максимум \(3\) бросков.
$$p_1=\frac{6}{6^5}=\frac{1}{1296}\approx0{,}07716\%.$$
Самая тривиальная стратегия также является и лучшей: если вы хотите максимизировать шанс, вы сохраняете самую большую группу одинаковых чисел. Целевой номер также может измениться: из \((2,2,3,4,5)\) вы сначала сохраняете два \(2\) . Если при следующем броске выпадает \((6,6,6)\) , вы сохраняете эту группу и перебрасываете два \(2\) . Последний шанс увеличивается с \(\frac{1}{216}\) до \(\frac{1}{36}\) . И последнее, но не менее важное: давайте предположим: трюк немедленно завершает эпизод; дальнейшие пометы опускаются.
Самый простой способ произвести расчет — начать с последнего броска. Если \(4\) одних и тех же кубиков уже доступны, только оставшиеся кости должны пройти: шанс равен \(\frac{1}{6}\) . Если \(3\) — одинаковые кубики, на двух других должно быть указано выпавшее число. Поскольку их результаты независимы, умножьте шансы и получите \(\frac{1}{6}\cdot\frac{1}{6}=\frac{1}{36}\) . С другой стороны, если держать одновременно разные цифры, с последним броском проблем быть не может. Так что важно не только количество, но и то, что вы храните.
Если осталось \(2\) бросков, каждый недостающий кубик получает еще один шанс. Если \(4\) кубика одинаковы, одного удара оставшимися кубиками достаточно. Здесь расчет счетчика короче: он не достигает целевого числа в обеих попытках с вероятностью \(\frac{5}{6}\cdot\frac{5}{6}=\frac{25}{36}\) . Таким образом, вероятность успеха равна \(1-\frac{25}{36}=\frac{11}{36}\) . Для небольших групп вы просчитываете все возможные последствия бросков и позволяете изменить цель. Следующие шансы возникают при лучшем выборе стопа:
| Самая большая группа | Результаты в \(1.\) помете | Шанс при \(2\) оставшихся бросках |
|---|---|---|
| \(1\) | \(720\) | \(\frac{221}{17496}\) |
| \(2\) | \(5400\) | \(\frac{113}{3888}\) |
| \(3\) | \(1500\) | \(\frac{121}{1296}\) |
| \(4\) | \(150\) | \(\frac{11}{36}\) |
| \(5\) | \(6\) | \(1\) |
Линии встречаются с разной частотой. Например, самая большая группа \(2\) кубиков создается за \(5400\) из \(7776\) возможных первых бросков. К ним относятся одна пара и \(2\) пары; Если есть ничья, вы выбираете один из них. Мы умножаем каждый шанс справа на число в середине и делим сумму на \(7776\) . Это возвращает \(p_3\) ; для \(p_2\) вы используете только бросок остатка. Перед первым броском с оптимальным выбором остановки применяются следующие значения: \(p_2\) для максимума \(2\) и \(p_3\) для максимума \(3\) бросков.:
$$p_2=\frac{221}{17496}\approx1{,}26315\%.$$
$$p_3=\frac{347897}{7558272}\approx4{,}60286425\%.$$
Можно полностью проверить, действительно ли лучше держать самую большую группу. Следующий PHP-скрипт рассматривает все возможные варианты, включая смешанные числа или отсутствие кубиков вообще. Он начинается в конце хода, затем вычисляет лучшие решения для \(1\) и \(2\) оставшихся бросков и, наконец, усредняет результаты первого броска. Одни и те же узоры используются повторно, чтобы сохранить небольшой счет. Все сравнения производятся с целыми числами; округляется только процентное значение:
<?php
declare(strict_types=1);
if (PHP_INT_SIZE < 8) {
throw new RuntimeException('64-Bit-PHP erforderlich.');
}
function combinations(array $limits): array
{
$result = [[]];
foreach ($limits as $limit) {
$next = [];
foreach ($result as $prefix) {
for ($i = 0; $i <= $limit; $i++) {
$next[] = [...$prefix, $i];
}
}
$result = $next;
}
return $result;
}
function outcomes(int $number): array
{
static $cache = [];
if (isset($cache[$number])) {
return $cache[$number];
}
$result = [];
foreach (combinations(array_fill(0, $number, value: 5)) as $dice) {
$counts = array_fill(0, count: 6, value: 0);
foreach ($dice as $face) {
$counts[$face]++;
}
$key = implode(',', $counts);
$result[$key] = ($result[$key] ?? 0) + 1;
}
return $cache[$number] = $result;
}
function pattern(array $counts): string
{
rsort($counts);
return implode(',', $counts);
}
$states = [];
$values = [];
foreach (outcomes(5) as $key => $count) {
$counts = array_map('intval', explode(',', $key));
rsort($counts);
$states[pattern($counts)] = $counts;
$values[pattern($counts)] = (int) ($counts[0] === 5);
}
// Gemeinsamer Nenner: 6^(5 * verbleibende Würfe).
for ($remaining = 1; $remaining <= 2; $remaining++) {
$next = [];
foreach ($states as $key => $counts) {
$best = 0;
foreach (combinations($counts) as $held) {
$number = 5 - array_sum($held);
$total = 0;
foreach (outcomes($number) as $rolled => $count) {
$after = array_map('intval', explode(',', $rolled));
foreach ($held as $face => $amount) {
$after[$face] += $amount;
}
$total += $count * $values[pattern($after)];
}
$best = max($best, $total * (6 ** (5 - $number)));
}
$next[$key] = $best;
}
$values = $next;
}
$numerator = 0;
$denominator = 6 ** 15;
foreach (outcomes(5) as $key => $count) {
$numerator += $count * $values[pattern(array_map('intval', explode(',', $key)))];
}
[$a, $b] = [$numerator, $denominator];
while ($b !== 0) {
[$a, $b] = [$b, $a % $b];
}
echo intdiv($numerator, $a), '/', intdiv($denominator, $a), PHP_EOL;
printf("%.10f%%\n", (100 * $numerator) / $denominator);
Около \(4{,}60\%\) означает: даже при лучшем выборе проблема остается редкой. Если вы каждый раз перебрасываете все, шанс за максимум \(3\) попыток составит всего около \(0{,}23130\%\) . Если вы продолжаете подбирать кубики, но придерживаетесь целевого числа, выбранного после \(1.\) броска, вы достигнете примерно \(4{,}52941\%\) . Таким образом, переход на более крупную группу дает небольшое дополнительное преимущество. Независимо от того, математическая ли это стратегия или чистое интуитивное чувство: Kniffel — вневременная, увлекательная и, прежде всего, увлекательная настольная игра.