\(5\) des nombres égaux donnent lieu à un tour. Cependant, la probabilité que cela se produise dépend de ce que vous considérez comme un essai : un seul lancer de dés \(5\) ou un tour complet au cours duquel vous continuez à faire correspondre les dés et les relancez jusqu'à \(2\) fois. Ici, nous utilisons \(5\) dés équitables avec les nombres \(1\) à \(6\) et des résultats indépendants. Chaque tour compte comme un succès ; la probabilité que vous recherchez n'est pas limitée à un nombre spécifique de points comme \(6\) .
Selon les instructions du jeu , vous pouvez décider à nouveau avant chaque lancer supplémentaire quels dés restent en suspens. Notre seul objectif est une sorte de truc, pas le meilleur score global d'un match. Un seul lancer a \(6^5=7776\) des résultats également probables lors de la différenciation des dés. Parmi ceux-ci \(6\) affiche le même numéro sur tous les dés. La chance est donc \(\frac{6}{7776}=\frac{1}{1296}\) . Dès qu'un pli est atteint, vous terminez le mouvement ; Au total, un maximum de \(3\) lancers sont autorisés.
$$p_1=\frac{6}{6^5}=\frac{1}{1296}\approx0{,}07716\%.$$
La stratégie la plus triviale est aussi la meilleure : si vous voulez maximiser les chances, vous conservez le plus grand groupe de nombres identiques. Le numéro cible peut également changer : De \((2,2,3,4,5)\) vous conservez d'abord les deux \(2\) . Si le lancer suivant délivre \((6,6,6)\) , vous conservez ce groupe et relancez les deux \(2\) . La dernière chance passe de \(\frac{1}{216}\) à \(\frac{1}{36}\) . Et enfin, supposons : un gadget met fin à l'épisode immédiatement ; les autres portées sont omises.
La façon la plus simple de faire le calcul est de commencer par le dernier lancer. Si \(4\) des mêmes dés sont déjà disponibles, seuls les dés restants doivent réussir : la chance est \(\frac{1}{6}\) . Si \(3\) sont les mêmes dés, les deux autres doivent indiquer le numéro détenu. Parce que leurs résultats sont indépendants, multipliez les chances et obtenez \(\frac{1}{6}\cdot\frac{1}{6}=\frac{1}{36}\) . En revanche, si vous conservez des numéros différents en même temps, il ne peut y avoir aucun problème avec le dernier lancer. Ce n'est donc pas seulement le nombre qui compte, mais aussi ce que vous conservez.
Avec \(2\) lancers restants, chaque dé manquant a une autre chance. Si \(4\) dés sont identiques, un coup avec les dés restants suffit. Le calcul du compteur est ici plus court : il manque le nombre cible dans les deux tentatives avec la probabilité \(\frac{5}{6}\cdot\frac{5}{6}=\frac{25}{36}\) . Les chances de succès sont donc \(1-\frac{25}{36}=\frac{11}{36}\) . Pour les petits groupes, vous comptez toutes les conséquences possibles des lancers et autorisez le changement de cible. Les chances suivantes se présentent avec le meilleur choix d'arrêt:
| Le plus grand groupe | Résultats dans la \(1.\) portée | Chance avec \(2\) lancers restants |
|---|---|---|
| \(1\) | \(720\) | \(\frac{221}{17496}\) |
| \(2\) | \(5400\) | \(\frac{113}{3888}\) |
| \(3\) | \(1500\) | \(\frac{121}{1296}\) |
| \(4\) | \(150\) | \(\frac{11}{36}\) |
| \(5\) | \(6\) | \(1\) |
Les lignes n'apparaissent pas avec la même fréquence. Par exemple, un plus grand groupe de \(2\) dés est créé dans \(5400\) des \(7776\) premiers lancers possibles. Ceux-ci incluent une seule paire et des paires \(2\) ; S'il y a égalité, vous en choisissez un. Nous multiplions chaque chance à droite par le nombre au milieu et divisons la somme par \(7776\) . Cela renvoie \(p_3\) ; pour \(p_2\) vous utilisez uniquement un lancer de reste. Les valeurs suivantes s'appliquent avant le premier lancer avec choix d'arrêt optimal : \(p_2\) pour un maximum de \(2\) et \(p_3\) pour un maximum de \(3\) lancers:
$$p_2=\frac{221}{17496}\approx1{,}26315\%.$$
$$p_3=\frac{347897}{7558272}\approx4{,}60286425\%.$$
Il est possible de tester pleinement s’il est vraiment préférable de conserver le plus grand groupe. Le script PHP suivant considère toutes les sélections possibles, y compris les nombres mixtes ou l'absence de dé du tout. Il commence à la fin du tour, puis calcule les meilleures décisions pour les \(1\) et \(2\) lancers restants et enfin fait la moyenne du premier lancer. Les mêmes motifs sont réutilisés pour réduire la facture. Toutes les comparaisons sont effectuées avec des nombres entiers ; seul l'affichage du pourcentage est arrondi:
<?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);
Autour de \(4{,}60\%\) signifie : Même avec le meilleur choix, un problème reste rare. Si vous relancez tout à chaque fois, la chance sur un maximum de \(3\) tentatives n'est que d'environ \(0{,}23130\%\) . Si vous continuez à faire correspondre les dés, mais que vous vous en tenez au nombre cible choisi après le \(1.\) lancer, vous obtiendrez environ \(4{,}52941\%\) . Passer au groupe le plus large apporte donc un petit avantage supplémentaire. Qu'il s'agisse de stratégie mathématique ou de pure intuition : Kniffel est un jeu de société intemporel, divertissant et surtout divertissant.