Dichiarazione problema
Pólya sta di nuovo giocando con la sua urna e vuole che tu lo aiuti a calcolare alcune probabilità.
In questo esperimento di urna Pólya ha un'urna che inizialmente contiene 1 perlina rossa e 1 blu.
Per ogni iterazione, raggiunge e recupera una perlina, quindi controlla il colore e posiziona la perlina nell'urna.
Poi lancia una moneta buona, se la moneta atterra teste inserirà nell'urna una discreta quantità di tiri dado a 6 facce dello stesso tallone colorato, se atterra le code rimuoverà metà del numero dello stesso tallone colorato dall'urna ( Usando la divisione intera - quindi se il numero di perline del colore selezionato è dispari, rimuoverà (c-1)/2
dove c è il numero di perline di quel colore)
Dato un numero intero n ≥ 0 e un decimale r> 0, si dà la probabilità a 2 cifre decimali che il rapporto tra i colori delle perline dopo n iterazioni sia maggiore o uguale a r nel numero più breve di byte.
Un esempio di iterazioni:
Lascia (x, y) definire l'urna in modo tale che contenga x perline rosse e y perline blu.
Iteration Urn Ratio
0 (1,1) 1
1 (5,1) 5 //Red bead retrieved, coin flip heads, die roll 4
2 (5,1) 5 //Blue bead retrieved, coin flip tails
3 (3,1) 3 //Red bead retrieved, coin flip tails
4 (3,4) 1.333... //Blue bead retrieved, coin flip heads, die roll 3
Come si può vedere, il rapporto r è sempre ≥ 1 (quindi è maggiore del rosso o del blu diviso per il minore)
Casi test:
Consenti a F (n, r) di definire l'applicazione della funzione per n iterazioni e un rapporto di r
F(0,5) = 0.00
F(1,2) = 0.50
F(1,3) = 0.42
F(5,5) = 0.28
F(10,4) = 0.31
F(40,6.25) = 0.14
Questo è il golf del codice, quindi vince la soluzione più breve in byte.