El conjunto Ω ( d , n )Ω(d,n) de resultados identificables distintos en nn tiradas independientes de un dado con d = 6d=6 caras tiene d ndn elementos. Cuando el dado es justo, eso significa que cada resultado de una tirada tiene probabilidad 1 / dy1/d independencia significa que cada uno de estos resultados tendrá, por lo tanto, probabilidad ( 1 / d ) n :(1/d)n: es decir, tienen una distribución uniforme P d , n .Pd,n.
Suponga que ha ideado algún procedimiento tt que determina mm resultados de un dado de c ( = 150 )c(=150) , es decir, un elemento de Ω ( c , m ),Ω(c,m) o bien informa un fallo (lo que significa que tendrá que repetir para obtener un resultado). Es decir,
t : Ω ( d , n ) → Ω ( c , m ) ∪ { Fallo } .t:Ω(d,n)→Ω(c,m)∪{Failure}.
Sea FF la probabilidad de que tt resulte en una falla y tenga en cuenta que FF es un múltiplo integral de d - n ,d−n, digamos
F = Pr ( t ( ω ) = Falla ) = N Fd - n .F=Pr(t(ω)=Failure)=NFd−n.
(Para referencia futura, nota que el número esperado de veces debe invocar antes de fallar no es )t t1 / ( 1 - F ) .1/(1−F).
El requisito de que estos resultados en sean uniformes e independiente condicional en no informar medios de fallo que conservas probabilidad en el sentido de que para cada eventoΩ ( c , m ) Ω(c,m)t t A ⊂ Ω ( c , m ) ,ttA⊂Ω(c,m),
P d , n ( t ∗ A )1 - F =Pc,m(A)Pd,n(t∗A)1−F=Pc,m(A)(1)
dónde
t ∗ ( A ) = { ω ∈ Ω ∣ t ( ω ) ∈ A }t∗(A)={ω∈Ω∣t(ω)∈A}
es el conjunto de tiradas de dado que el procedimiento asigna al eventot tA .A.
Considere un evento atómico , que debe tener una probabilidadDeje que (las tiradas de dados asociadas con ) tienen elementos . convierteA = { η } ⊂ Ω ( c , m ) A={η}⊂Ω(c,m)c - m . c−m.t ∗ ( A )t∗(A) ηη N ηNη ( 1 )(1)
N η d - n1 - N F d - n = P d , n ( t ∗ A )1 - F =Pc,m( A ) = c - m .Nηd−n1−NFd−n=Pd,n(t∗A)1−F=Pc,m(A)=c−m.(2)
Es inmediato que los son todos iguales a algún número enteroN ηNη N . N.t . C Solo queda encontrar los procedimientos más eficientes El número esperado de no fallas por tirada del dado est.c
1metro ( 1 - F ) .1m(1−F).
Hay dos implicaciones inmediatas y obvias. Una es que si podemos mantener pequeño a medida que crece, entonces el efecto de informar una falla es asintóticamente cero. La otra es que para cualquier dada (el número de tiradas del dado para simular), queremos que más pequeño posible.F Fmm m mc cFF
Echemos un vistazo más de cerca a borrando los denominadores:( 2 )(2)
N c m = d n - N F > 0.Ncm=dn−NF>0.
Esto hace obvio que en un contexto dado (determinado por ), se hace lo más pequeño posible haciendo que igual al múltiplo más grande de que sea menor o igual que Podemos escribir esto en términos de la función entera más grande (o "piso") comoc , d , n , m c,d,n,mF Fd n - N F dn−NFc m cmd n . dn.⌊ ∗ ⌋⌊∗⌋
N = ⌊ d nc m ⌋.N=⌊dncm⌋.
Finalmente, está claro que debe ser lo más pequeño posible para lograr la mayor eficiencia, ya que mide la redundancia en . Específicamente, el número esperado de tiradas del dado de lado necesario para producir un lanzamiento del dado de lado esN Nt d ctdc
N × nm ×11 - F .N×nm×11−F.
Por lo tanto, nuestra búsqueda de procedimientos de alta eficiencia debería centrarse en los casos en que es igual o apenas mayor que alguna potenciad n dnc m .cm.
El análisis termina mostrando que para y dados hay una secuencia de múltiplos para los cuales este enfoque se aproxima a la eficiencia perfecta. Esto equivale a encontrar para el cual acerca a en el límite (garantizando automáticamente ). Una de estas secuencias se obtiene tomando y determinandod dc , c,( n , m ) (n,m)( n , m ) (n,m)d n / c m ≥ 1 dn/cm≥1N = 1 N=1F → 0 F→0n = 1 , 2 , 3 , …n=1,2,3,…
m = ⌊ n log dlog c ⌋.m=⌊nlogdlogc⌋.(3)
La prueba es sencilla.
Todo esto significa que cuando estamos dispuestos a tirar el dado original sided un número suficientemente grande de veces podemos esperar simular casi resultados de un dado sided por tirada . Equivalentemented dn , n,log d / log c = log c d logd/logc=logcdcc
Es posible simular un gran número de tiradas independientes de un dado de utilizando un dado de justo usando un promedio de pasa por resultado donde puede hacerse arbitrariamente pequeño eligiendo suficientemente grande.m mc cd dlog ( c ) / log ( d ) + ϵ = log d ( c ) + ϵ log(c)/log(d)+ϵ=logd(c)+ϵϵ ϵmm
Ejemplos y algoritmos
En la pregunta, y de donded = 6 d=6c = 150 ,c=150,
log d ( c ) = log ( c )log ( d ) ≈2.796489.logd(c)=log(c)log(d)≈2.796489.
Por lo tanto, el mejor procedimiento posible requerirá, en promedio, al menos rollos de a para simular cada resultado.2.7964892.796489d6
d150
El análisis muestra cómo hacer esto. No necesitamos recurrir a la teoría de números para llevarla a cabo: podemos tabular las potencias las potencias y compararlas para encontrar dónde están cerca. Este cálculo de fuerza bruta da paresd n = 6 n dn=6nc m = 150 mcm=150m c m ≤ d ncm≤dn ( n , m )(n,m)
( n , m ) ∈ { ( 3 , 1 ) , ( 14 , 5 ) , … }(n,m)∈{(3,1),(14,5),…}
por ejemplo, correspondiente a los números
( 6 n , 150 m ) ∈ { ( 216 , 150 ) , ( 78364164096 , 75937500000 ) , ... } .(6n,150m)∈{(216,150),(78364164096,75937500000),…}.
En el primer caso, asociaría de los resultados de tres tiradas de a a Fracaso y los otros resultados se asociarían a un único resultado de a . t t216 - 150 = 66 216−150=66d6
150150d150
En el segundo caso, asociaría de los resultados de 14 tiradas de a a Fracaso, alrededor del 3,1% de todas ellas, y de lo contrario generaría una secuencia de 5 resultados de a .t t78364164096 - 7593750000078364164096−75937500000d6
d150
Un algoritmo simple para implementartt etiqueta las caras del dado con lados con los números y las caras del dado con lados con los números Las tiradas del primer dado se interpretan como un número de dígitos en la base Esto se convierte en un número en la base Si tiene como máximo dígitos, la secuencia de los últimos dígitos es la salida. De lo contrario, devuelve Fallo invocando recursivamente.dd0,1,…,d−10,1,…,d−1cc0,1,…,c−1.0,1,…,c−1.nnnnd.d.c.c.mmmmtt
Para secuencias mucho más largas, puede encontrar pares adecuados considerando cualquier otro convergente de la expansión de fracción continua de La teoría de las fracciones continuas muestra que estos convergentes alternan entre ser menor que y mayor que él (suponiendo que ya no es racional). Elija aquellos que son menores que(n,m)(n,m)n/mn/mx=log(c)/log(d).x=log(c)/log(d).xxxxx.x.
En la pregunta, los primeros convergentes son
3,14/5,165/59,797/285,4301/1538,89043/31841,279235/99852,29036139/10383070….3,14/5,165/59,797/285,4301/1538,89043/31841,279235/99852,29036139/10383070….
En el último caso, una secuencia de 29,036,139 rollos de a d6
producirá una secuencia de 10,383,070 rollos de a d150
con una tasa de falla menor a para una eficiencia de indistinguible del límite asintótico.2×10−8,2×10−8,2.796492.79649