Finalmente me ocurrió una pregunta que enviar Wichman-Hill generador fuera de la carretera. No es tan natural como se puede desear, pero espero que sea suficientemente espectacular.
Aquí está el problema: el estudio de la distribución de
$$ X = -10U_1 - 22U_2 + 38U_3 - 3U_4 + U_5 + 4U_6 - 38 U_7$$
con la $U_i$ iid uniforme en $(0,1)$.
Vamos a dibujar un histograma.
x <- c(-10, -22, 38, -3, 1, 4, -38)
RNGkind(kind="Mersenne")
U <- matrix( runif(7*1e6), nrow= 7 )
hist( colSums(x * U), breaks = seq(-70,50,by=0.25), col="black" )
Ahora intenta con Wichman-Hill:
RNGkind(kind="Wichman")
U <- matrix( runif(7*1e6), nrow= 7 )
hist( colSums(x * U), breaks = seq(-70,50,by=0.25), col="black" )
Sí, todos los valores generados son entero:
> head(colSums(x*U), 20)
[1] 3 -9 -52 -21 -23 -14 -18 8 -23 12 5 4 -17 -16 -19 -44 5 4 -23
[20] -15
Si algunas personas muestran interés, me puede explicar brevemente cómo he construido este ejemplo.
Aquí es un boceto de la construcción del ejemplo. Lineal Congruential Generadores de confiar en una secuencia en la $[1,\dots m-1]$ definido por $x_{n+1} = \alpha x_n \ [m]$ (lo que significa que el modulo $m$ )$\gcd(\alpha,m)=1$. Los números pseudo-aleatorios $u_n = {1\over m} x_n$ se comportan más o menos como los números aleatorios uniformes en $(0,1)$.
Un problema conocido de estos generadores es que usted puede encontrar un montón de coeficientes de $a_0, a_1, \dots, a_k\in \mathbb{Z}$ tal que
$$ a_0 + a_1 \alpha + \cdots + a_k \alpha^k = 0 \ [m].$$
Esto se traduce en $a_0 x_n + \cdots + a_k x_{n+k} = 0 \ [m]$ todos los $n$, que se convierte en resultados en $a_0 u_n + \cdots + a_k u_{n+k} \in \mathbb{Z}$. Esto significa que todos los $(k+1)$-tuplas $(u_n, \dots, u_{n+k})$ de caída en los planos ortogonales a $(a_0, \dots, a_k)'$.
Por supuesto, con $k=1$, $a_0=\alpha$ y $a_1 = -1$, usted tiene un ejemplo. Pero como $\alpha$ es generalmente grande, esto no le dará un aspecto agradable en el ejemplo anterior. El punto es encontrar el "pequeño" $a_0, \dots, a_k$ valores.
Vamos
$$L = \{ (a_0, \dots, a_k) \ :\ a_0 + a_1 \alpha + \cdots + a_k \alpha^k = 0 \ [m] \}.$$
Esta es una $\mathbb{Z}$-red.
El uso de un poco de álgebra modular, uno puede comprobar que $f_0 = (m,0,\dots,0)'$, $f_1 = (\alpha,-1,0,\dots,0)'$, $f_2 = (0,\alpha,-1,0,\dots,0)'$, $\dots$, $f_k = (0,\dots,0,\alpha,-1)'$ es una base de este entramado (esta es la clave del resultado aquí...).
El problema es, entonces, encontrar una breve vector en $L$. He utilizado LLL algoritmo para este propósito. Algoritmo 2.3 de Brian Ripley Simulación Estocástica en punta (después de mi respuesta) por kjetil b halvorsen podría haber sido utilizado también.
Para Wichman-Hill, el teorema del resto Chino permite comprobar fácilmente que es equivalente a un generador de la anterior clase, con $\alpha = 16555425264690$$m = 30269\times30307\times30323 = 27817185604309$.