\(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 គឺជាហ្គេមកម្សាន្តដែលមិនចេះចប់មិនចេះហើយ ហើយសំខាន់ជាងនេះទៅទៀតគឺហ្គេមក្តារដ៏គួរឱ្យរីករាយ។