Forum » Programiranje » Nic več stringov , le matematika
Nic več stringov , le matematika
StratOS ::
No smo spet pri matematiki.
Kako napraviti dober algoritem za naključna števila ( 0 < x < 1 ) brez uporabe rnd oz. random funkcije, uporabljate lahko le matematične funkcije.
Vhodni parameter naj bo recimo osnova (seed) za izračun končnega naključnega števila.
Dober algoritem je tisti, ki se sploh nebi ponavljal ( naključne številke se nebi ponaljale ).
Algoritem naj deluje recimo na 12 decimalk.
Zanima me le argoritem in noben program !
Go ahead ...
Kako napraviti dober algoritem za naključna števila ( 0 < x < 1 ) brez uporabe rnd oz. random funkcije, uporabljate lahko le matematične funkcije.
Vhodni parameter naj bo recimo osnova (seed) za izračun končnega naključnega števila.
Dober algoritem je tisti, ki se sploh nebi ponavljal ( naključne številke se nebi ponaljale ).
Algoritem naj deluje recimo na 12 decimalk.
Zanima me le argoritem in noben program !
Go ahead ...
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
- spremenila: StratOS ()
Senitel ::
V Game Programming Gems 2 je precej podrobno opisana ena metoda za generiranje naključnih števil. Gre pa ta "genuine random" števila ni ne "psevdo random" (kjer so na novo generirana števila odvisna od prej generiranih).
Osnovna ideja je v tem, da si rezerviraš en buffer poljubne dolžine in ga zafilaš z nekimi podatki, naprimer:
-Seed
-Čas, datum
-Username, computer name
-Stanje registrov,
-Vsebina stack-a
-Stanje pomnilnika, stanje diska
-Pozicija miške, pozicija oken
-Čas od bootanja, število sprejetih paketkov po mreži
-Seek časi za diske, CD-ROM, DVD-ROM
-Vhod zvočne kartice
-Vhod video kamere
...
Ko je un buffer nafilan ga spustiš še čez eno razpršilno funkcijo. Če uporabiš naprimer MD5 dobiš kot rezultat 16 bytov veliko naključno število. Sedaj je stvar samo še v tem, da spraviš 16 bytov v interval od 0 do 1. Pa zadeva je ful random (z uporabo MD5) samo mal draga.
Osnovna ideja je v tem, da si rezerviraš en buffer poljubne dolžine in ga zafilaš z nekimi podatki, naprimer:
-Seed
-Čas, datum
-Username, computer name
-Stanje registrov,
-Vsebina stack-a
-Stanje pomnilnika, stanje diska
-Pozicija miške, pozicija oken
-Čas od bootanja, število sprejetih paketkov po mreži
-Seek časi za diske, CD-ROM, DVD-ROM
-Vhod zvočne kartice
-Vhod video kamere
...
Ko je un buffer nafilan ga spustiš še čez eno razpršilno funkcijo. Če uporabiš naprimer MD5 dobiš kot rezultat 16 bytov veliko naključno število. Sedaj je stvar samo še v tem, da spraviš 16 bytov v interval od 0 do 1. Pa zadeva je ful random (z uporabo MD5) samo mal draga.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Odkrita resna varnostna pomankljivost v Debianovem naključnem generatorju števil za OOddelek: Novice / Varnost | 7712 (4302) | poweroff |
» | Varnost generatorjev naključnih številOddelek: Novice / Varnost | 6357 (6356) | Thomas |
» | [C] generator naključnih številOddelek: Programiranje | 3516 (3034) | Thomas |
» | Kako nastanejo naključna števila?Oddelek: Znanost in tehnologija | 2180 (1942) | Thomas |
» | statistika (strani: 1 2 )Oddelek: Znanost in tehnologija | 5568 (4905) | Thomas |