\(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-ը հավերժական, զվարճալի և, ամենից առաջ, զվարճալի սեղանի խաղ է: