| |
|
|
p.specht
| Trotz qui -zigtausendfach besseren Performance heutiger Computersysteme à den Großrechnern qui 1960-iger Jahre gibt es mathématique Probleme (z.B. Optimierungsaufgaben), qui encore toujours pas avec reiner Rechenkraft vollständig gelöst volonté peut. ensuite ist on sur sog. "Monte-Carlo-Methoden" angewiesen: on zieht (comment im berühmten Spielcasino) statistisch Zufallsstichproben et schließt daraus sur cela zugrunde liegende Verhalten des Gesamtsystems.
Voraussetzunng ist, qui un leistungsfähiger, possible juste-verteilter Zufallsgenerator zur Disposition steht - gleichverteilt, weil qui Generator selbst oui sonst qui Ergebnisse verzerren serait. mais aussi le nombre qui ziehbaren Stichproben allez dans qui Aussagekraft des Ergebnisses un - wir brauchen alors une SEHR SCHNELLEN, ausreichend genauen et AUSGEZEICHNET GLEICHVERTEILTEN Zufallsgenerator. cela bezieht sich allerdings seulement sur Single precision Floatingpoint.
P.S.: quel RND()-Algorithmus dans XProfan verbaut ist sais je malheureusement pas.
Titre de la fenêtre "Einfacher, plus rapide Single Precision Pseudo-Random Generator"
' Rechtliches: Teilauszug aus ACM-Algo. Nr. 359 by John Burghardt
' Details et Referenzen siehe Anhang plus unten! OHNE GEWÄHR!
Cls
declare seed&
seed&=12345
imprimer
imprimer " SOLL 12345 0.096616 207482415"
imprimer seed&,r_uniform_01(),seed&
imprimer
imprimer " SOLL 207482415 0.833995 1790989824"
imprimer seed&,r_uniform_01(),seed&
imprimer
imprimer " SOLL 1790989824 0.947702 2035175616"
imprimer seed&,r_uniform_01(),seed&
imprimer
waitinput
Fin
Proc r_uniform_01
DECLARE k&,r_uniform_01!'extern_global: seed&
k& = seed& \ 127773
seed&= 16807*(seed&-k&*127773)-k&*2836
cas seed&<0:seed&=seed&+2147483647
return seed&*val("4.656612875e-10")
endproc
' *******************************************************************************
' R_UNIFORM_01 returns a unit SINGLE PRECISION pseudorandom number.
' This routine implements le 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.
'
' Si le initial seed is 12345, then le first three computations sont
' Contribution Output R_UNIFORM_01
' SEED SEED
' 12345 207482415 0.096616
' 207482415 1790989824 0.833995
' 1790989824 2035175616 0.947702
'
' Modified: 11 août 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,
' dans Handbook of Simulation,
' edited by Jerry Banks,
' Wiley Interscience, le chasseur 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 le System/360,
' IBM Systems journal,
' Volume 8, pages 136-143, 1969.
'
' Paramètres:
'
' Contribution/output, integer SEED, le "seed" value, which should NOT être 0.
' On output, SEED has been updated.
'
' Output, réel R_UNIFORM_01, a new pseudorandom variate,
' strictly between 0 and 1.
' Although SEED can être represented exactly as a 32 bit integer,
' il generally cannot être represented exactly as a 32 bit réel number!
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 22.05.2021 ▲ |
|
|
|
|
Michael W. | là XProfan dans Delphi geschrieben ist:
qui Algo baut toujours sur qui vorhergehenden Zufallszahl sur. Es wird alors toujours une Folge generiert, qui par Randomiser récente initialisiert wird (sans Randomiser ist qui erste Wert 0)
qui ermittelte numéro (RandomSeed) wird dans einem Longint gespeichert, alors sur 2^ 32 gekappt.
Randomiser holt neue Werte aus dem laufenden SystemCounter, alors "seit quand fonctionne cela Betriebssystem". aussi cette Wert ist irgendwann wieder chez zéro arrivé et fonctionne endlos.
Pour normale nombres aléatoires reicht cela, si am Programmstart einmal Randomiser aufgerufen wird. Sonst sollte une eigene Random-Funktion gebastelt volonté.
peut-être devrait wir aus dem Internet la fois quelques brauchbare Formeln ramasser et dans forme de RndNum(FormelNr,RandSeed) comme Übervater disponible faire. cela peux ensuite oui peut-être. optimiert volonté.
Werden pour Verschlüsselungen pas sowieso Zufallsfolgen nécessaire? |
|
|
| |
|
|