Η μήτρα ρίχνεται

\(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 είναι ένα διαχρονικό, διασκεδαστικό και, πάνω απ' όλα, διασκεδαστικό επιτραπέζιο παιχνίδι.

Πίσω