Generador unidimensional de n煤meros reales aleatorios

La generaci贸n de una variable aleatoria uniforme continua result贸 no ser una tarea f谩cil, tal vez porque la formulaci贸n misma del problema es un poco absurda, porque l贸gicamente obtener aleatoriedad significa no encontrar una soluci贸n. Sin embargo, dejando el m谩s simple "驴c贸mo ser谩 en ingl茅s - no s茅?", En los art铆culos dedicados a los algoritmos, encontrar谩 trabajos sobre la creaci贸n de secuencias de n煤meros aleatorios.





La clase de generador "True Random" utiliza fen贸menos f铆sicos y restricciones externas, por lo que, por ejemplo, para generar un n煤mero aleatorio decimal, puede encontrar la recomendaci贸n de utilizar un "sensor atmosf茅rico". Naturalmente, como amante de la programaci贸n, este estado de cosas me pareci贸 injusto, y durante bastante tiempo "el problema fue madurando". Una variante de la soluci贸n, como se esperaba de la formulaci贸n del problema, apareci贸 por casualidad, como un agregado al problema de compresi贸n para empacar esferas duras . El problema no ha encontrado una soluci贸n anal铆tica, ya que a煤n no hay evidencia de su ausencia, respectivamente, la fuente es bastante adecuada por signos externos. Sin embargo, no obtuve m谩s que una complejidad infinita en el c谩lculo inverso del estado del generador.





La idea no es nueva, se us贸, por ejemplo, en sistemas UNIX, pero la raz贸n por la que no puedo usar el algoritmo dado como funci贸n solo se encontr贸 con un estudio exhaustivo de su trabajo. Es imposible proporcionar matem谩ticamente una fluctuaci贸n finita de un n煤mero infinito de par谩metros, por lo tanto, si el generador es realmente continuo, entonces, a diferencia del aritm茅tico, el n煤mero de sus valores es infinito. En la pr谩ctica, no me he encontrado con ning煤n fallo en su trabajo, pero en total no son m谩s que meses de trabajo, aunque la "segunda ley de la termodin谩mica" tambi茅n est谩 de mi lado, no proporciona una fiabilidad l贸gica estricta. Por lo tanto, no pretendo utilizar el algoritmo como una funci贸n para sistemas con alta confiabilidad, pero admito que, junto con modificaciones adicionales, la confiabilidad formal se puede incrementar significativamente.





. , Diehard , "".





, . , , " " " ". :





D - D-2 .





Proyecci贸n bidimensional de puntos aleatorios de la superficie de una esfera de cuatro dimensiones.
.

. .





RandomSphere[Rn_: 2, Pn_: 1, Rb_: 1] := 
 Module[{i, j, m, p, r, s, S, X, Xi, Xj, Pm},
  X = Array[0 &, {Pn, Rn}]; Pm = Rn; s = 1/Sqrt[2];
  For[p = 1, p <= Pn, p++, i = RandomInteger[{1, Rn}]; S = 0; 
   For[r = 1, r <= Rn, r++,
    X[[p, r]] = 
     If[r != i, RandomReal[{-1, 1}], RandomChoice[{-1, 1}]]; 
    S += X[[p, r]]^2];
   X[[p]] *= Rb/Sqrt[S];
   For[m = 1, m <= Pm, m++,
    i = RandomInteger[{1, Rn}]; j = i; 
    While[i == j, j = RandomInteger[{1, Rn}]];
    Xi = X[[p, i]];
    Xj = X[[p, j]];
    X[[p, i]] = s (Xj - Xi);
    X[[p, j]] = s (Xj + Xi)]]; Return[X]]
      
      



, . , , , . , , .





Ilustraci贸n de una proyecci贸n bidimensional de una "superficie polvorienta a la luz" para bolas transparentes de 7,4,3 dimensiones.
" " 7,4,3 .

, " " .





.





. , . , :





. : , . .





. , , N. O(N(N-N1)/2) O(N^2). , N^(1+1/D) , .





Diehard, Parking Test, "Numerous experiments prove" , , . , .





: , . , , , .





:





,





r = {\ left ({\ frac {{Gamma \ left ({\ frac {M} {2} + 1} \ right)}} {{{\ pi ^ {\ frac {M} {2}}}} }} \ right) ^ {\ frac {1} {M}}}

M - , Gamma- . R-r,





R = {\ left ({V \ frac {{Gamma \ left ({\ frac {M} {2} + 1} \ right)}} {{{\ pi ^ {\ frac {M} {2}}} }}} \ right) ^ {\ frac {1} {M}}}

V , . ,





P \ left (x \ right) = \ begin {cases} {{{\ left ({\ frac {x} {{R - r}}} \ right)} ^ M}} & \ text {$ {0 \ le x \ le R - r} $} \\ 1 & \ text {$ {x> R - r} $} \ end {cases}

X, r, .. 2r :





X = \ frac {{{{\ left ({2r} \ right)} ^ M}}} {{{{\ left ({R - r} \ right)} ^ M}}} = \ frac {{{ 2 ^ M}}} {{{{\ left ({\ frac {R} {r} - 1} \ right)} ^ M}}}

(T(T-1))/2- , , Y :





Y = {\ left ({1 - X} \ right) ^ {\ frac {{T \ left ({T - 1} \ right)}} {2}}} = {\ left ({1 - \ frac { {{2 ^ M}}} {{{{\ left ({\ frac {R} {r} - 1} \ right)} ^ M}}}} \ right) ^ {\ frac {{T \ left ( {T - 1} \ right)}} {2}}} = {{\ rm {e}} ^ {- \ frac {{{2 ^ M}}} {{{{\ left ({\ frac {R } {r} - 1} \ right)} ^ M}}} \ frac {{T \ left ({T - 1} \ right)}} {2}}}

, , . , , .





Comparaci贸n de an谩lisis y valores recibidos en un paquete matem谩tico.  A lo largo de los ejes del gr谩fico, la probabilidad de superposici贸n en porcentaje y el factor de relleno en porcentaje (100 * T / V).  Par谩metros de c谩lculo M = 3, V = 8000
. (100*T/V). M=3, V=8000
Resultados de comparaci贸n con C #
C#

C# . , , Diehard .





- , "" . , , ParkingTest . . , . , , , .





, , . 10^8 , .





, , . , .





. , , , . , . " " - , , .





Inicialmente, estaba interesado en la cuesti贸n de la existencia de una fuente para la recepci贸n pr谩cticamente directa de n煤meros de coma flotante aleatorios. Por tanto, la naturaleza de este art铆culo es met贸dica, el algoritmo no pretende competir en rendimiento con los RNG de hardware, y m谩s a煤n con los PRNG aritm茅ticos, ya que contiene, por ejemplo, c谩lculo de la ra铆z, pero a煤n se puede utilizar como duplicar o depurar uno.





Implementaci贸n de algoritmos en C #








All Articles