| |
|
|
p.specht
| Trotz el -zigtausendfach mejor Performance heutiger Computersysteme gegenüber el Großrechnern el 1960-iger Jahre hay matemático Problemas (z.B. Optimierungsaufgaben), el todavía siempre no con reiner Rechenkraft vollständig gelöst voluntad puede. Dann es uno en sog. "Monte-Carlo-Methoden" angewiesen: Man zieht (como en el berühmten Spielcasino) statistisch Zufallsstichproben y schließt lo el zugrunde liegende Comportamiento des Gesamtsystems.
Voraussetzunng es, daß una leistungsfähiger, möglichst igual-verteilter Zufallsgenerator disponible es - gleichverteilt, porque el Generator incluso sí sonst el Ergebnisse verzerren sería. Aber auch el número el ziehbaren Stichproben va en el Aussagekraft des Ergebnisses una - wir brauchen also una SEHR SCHNELLEN, ausreichend genauen y AUSGEZEICHNET GLEICHVERTEILTEN Zufallsgenerator. Das bezieht se allerdings sólo en Single precision Floatingpoint.
P.S.: Welcher RND()-Algorithmus en XProfan verbaut es weiß Yo por desgracia, no.
Título de la ventana "Einfacher, más rápido Single Precision Pseudo-Random Generator"
' Rechtliches: Teilauszug de ACM-Algo. Nr. 359 by John Burghardt
' Details y Referenzen siehe Anhang más unten! OHNE GEWÄHR!
Cls
declarar seed&
seed&=12345
imprimir
imprimir " SOLL 12345 0.096616 207482415"
imprimir seed&,r_uniform_01(),seed&
imprimir
imprimir " SOLL 207482415 0.833995 1790989824"
imprimir seed&,r_uniform_01(),seed&
imprimir
imprimir " SOLL 1790989824 0.947702 2035175616"
imprimir seed&,r_uniform_01(),seed&
imprimir
waitinput
End
Proc r_uniform_01
DECLARE k&,r_uniform_01!'extern_global: seed&
k& = seed& \ 127773
seed&= 16807*(seed&-k&*127773)-k&*2836
caso seed&<0:seed&=seed&+2147483647
volver seed&*val("4.656612875e-10")
ENDPROC
' *******************************************************************************
' R_UNIFORM_01 returns a unit SINGLE PRECISION pseudorandom number.
' This routine implements the recursion
' seed = 16807 * seed mod (2^31-1)
' r_uniform_01 = seed/(2^31-1)
' The integer arithmetic never requires more than 32 bits including a sign bit.
'
' If the initial seed is 12345, then the first three computations are
' Entrada Output R_UNIFORM_01
' SEED SEED
' 12345 207482415 0.096616
' 207482415 1790989824 0.833995
' 1790989824 2035175616 0.947702
'
' Modified: 11 August 2004 Author: John Burkardt
' Reference:
' Paul Bratley, Bennett Fox, L E Schrage,
' A Guide to Simulation,
' Springer Verlag, pages 201-202, 1983.
'
' Pierre L'Ecuyer,
' Random Number Generation,
' en Handbook of Simulation,
' edited by Jerry Banks,
' Wiley Interscience, page 95, 1998.
'
' Bennett Fox,
' Algorithm 647:
' Implementation and Relative Efficiency of Quasirandom
' Sequence Generators,
' ACM Transactions on Mathematical Software,
' Volume 12, Number 4, pages 362-376, 1986.
'
' P A Lewis, A S Goodman, J M Miller,
' A Pseudo-Random Number Generator for the Sistema/360,
' IBM Systems Journal,
' Volume 8, pages 136-143, 1969.
'
' Parámetros:
'
' Entrada/output, integer SEED, the "seed" value, which should NOT be 0.
' On output, SEED has been updated.
'
' Output, real R_UNIFORM_01, a new pseudorandom variate,
' strictly between 0 and 1.
' Although SEED can be represented exactly as a 32 bit integer,
' it generally cannot be represented exactly as a 32 bit real number!
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 22.05.2021 ▲ |
|
|
|
|
Michael W. | Como XProfan en Delphi geschrieben es:
Der Algo baut siempre en el vorhergehenden Zufallszahl en. Lo se also siempre una Folge generiert, el por Selección aleatoria neu initialisiert se (sin Selección aleatoria es el erste Valor 0)
El ermittelte Zahl (RandomSeed) se en un Longint gespeichert, also en 2^32 gekappt.
Selección aleatoria holt neue Werte de el laufenden SystemCounter, also "seit wann se ejecuta el Betriebssystem". Auch dieser Valor es irgendwann otra vez en Null angekommen y se ejecuta endlos.
Für normale Zufallszahlen reicht el, si al Programmstart una vez Selección aleatoria aufgerufen se. Sonst debería una propio Random-Función gebastelt voluntad.
Tal vez debería wir de el Internet veces algunos brauchbare Formeln recoger y Form de RndNum(FormelNr,RandSeed) como Übervater verfügbar hacer. Das kann entonces sí evtl. optimiert voluntad.
Werden para Verschlüsselungen no sowieso Zufallsfolgen benötigt? |
|
|
| |
|
|