Keresés

Részletes keresés

locsemege Creative Commons License 2006.10.09 0 0 21
A fenébe, megelőztél... :)
Előzmény: Bign (19)
locsemege Creative Commons License 2006.10.09 0 0 20
Azt tudod, hogy kell a Fórumra linket beszúrni? ;)
Előzmény: Bign (18)
Bign Creative Commons License 2006.10.09 0 0 19
Azt tudtátok, hogy a Google Code Search címen forrás kódokat lehet keresgélni?
Előzmény: Bign (18)
Bign Creative Commons License 2006.10.09 0 0 18
Azt tudtátok, hogy a http://google.com/codesearchhttp://google.com/codesearchhttp://google.com/codesearch címen forrás kódokat lehet keresgélni
Bign Creative Commons License 2006.09.30 0 0 17
A szerző biztos!

A számítógép-programozás mûvészete elsõ három kötet címe:
Alapvetõ algoritmusok,
Szeminumerikus algoritmusok,
Keresés és rendezés.
Előzmény: locsemege (16)
locsemege Creative Commons License 2006.09.30 0 0 16
A név vége ismerősen cseng, de a könyvet úgy 19 évvel ezelőtt láttam, tehát nem emlékszem biztosan. Talán annak a kiadásnak bordó borítása volt.
Előzmény: Bign (14)
Bign Creative Commons License 2006.09.30 0 0 15
Elő kotortam egy qbasic-et (4.5).

A véletlenszám generátora tesztelés alapján 24 bites!
(16777216-os ciklusban ismétli a véletlen számokat)
Bign Creative Commons License 2006.09.29 0 0 14
Donald Ervin Knuth?

Sajnos nincs példányom belőle...
Előzmény: locsemege (13)
locsemege Creative Commons License 2006.09.29 0 0 13
Megoldásként az első pont jöhet szóba.

Olvastam egy könyvben, talán Szeminumerikus algoritmusok lehetett a címe, hogy veszélyes megközelítés, például az, amikor különböző algoritmusokat keverünk, esetleg a seed-et valamilyen jónak tűnő trükkel generáljuk újra, mert úgy tűnhet, ezzel aztán olyan jól megkevertük a dolgokat - pl. a számjegyeket is elkezdjük kevergetni -, hogy jó nagy ciklusunk lesz, aztán igazolta, de példával illusztrálta is, hogy a ciklus akár néhány 10, néhány százas hurokra redukálódhat. Amit írtál, az pedig láthatóan csökkenti a ciklus hosszát. Ráadásul az elmélet nélküli trükközésekkel azt is kockára teszed, hogy nem egyenletes eloszlást kapsz majd.

Egy mai számítógép párperc alatt körbe pörgetheti a RNG ciklust. Utánna meg csak ismétlődés...

Na ezt kellene növelni, és nem a felére csökkenteni. Új algoritmussal, vagy a meglévő algoritmushoz új konstansokkal. Kár, hogy nem az enyém a könyv, de a konstansok meghatározására is leírta a kritériumokat.
Előzmény: Bign (12)
Bign Creative Commons License 2006.09.29 0 0 12
Amit írtam az valaminek a folytatása, nem a vége.

Ha V1, V2-t használjuk akkor egy 2^32 (2^31) ciklus után újra ugyanazok a véletlenszámok jönnek elő.

Mivel ettől többre lenne szükség, azért kell valami módon kiterjeszteni a ciklust.

A probléma C++ és Basic nyelvnél jött elő, és nem nálam.

Megoldásként szóba jöhet
1. egy teljesen új random függvény

2. a régit kell megbuherálni

A ciklus a példámban tényleg lecsökken felére, de az érték készlete nő és még tovább kell fejleszteni.
pl. egy (1..4) véletlen szám szerint a vissza adott érték:
1: V1
2: V1 + V2
3: V2
4: V2 + V1

Az összeadás nem matematikai!

A felhasználás helyén természetesen a szokásos szorzás és venni az egészrészt.

Az időre, billentyüzetre, egérre, vonatkozó javaslatok kevés véletlenszámnál beválnak,
de itt nem a véletlenszerüség, hanem a darabb számmal van a probléma.

Egy mai számítógép párperc alatt körbe pörgetheti a RNG ciklust. Utánna meg csak ismétlődés...
Előzmény: locsemege (3)
locsemege Creative Commons License 2006.09.29 0 0 11
Köszi! :) Időközben rátaláltam.
Előzmény: NevemTeve (10)
NevemTeve Creative Commons License 2006.09.29 0 0 10
Mármint a célzást arra, hogy írjak erről a FAQ-ba! Íme: 143
Előzmény: locsemege (9)
locsemege Creative Commons License 2006.09.29 0 0 9
Ez nekem most nem esett le. Megnéztem, és tényleg nem találtam...
Előzmény: NevemTeve (8)
NevemTeve Creative Commons License 2006.09.29 0 0 8
Értem a célzást...
Előzmény: locsemege (7)
locsemege Creative Commons License 2006.09.29 0 0 7
Nekem nincs hwrng device-om. :( Az urandom meg gondolom software-es.
Előzmény: NevemTeve (4)
nadamhu Creative Commons License 2006.09.29 0 0 6

>nanosecundumban vett ertekenek a kevesbe szignifikans bitjeibol

inkabb mikrosecundum legyen, a nanosec esetleg tul kicsi...

Előzmény: nadamhu (5)
nadamhu Creative Commons License 2006.09.29 0 0 5

Ezzel nem noveled meg a periodus hosszat.

Akkor mar valahogy ugy csinalnam, hogy megkernem, a user-t, hogy nyomja le nehanyszor a billentyuzetet.

Ezen idopontok nanosecundumban vett ertekenek a kevesbe szignifikans bitjeibol osszeallitanek nehany seed-et: ezek valodi veletlenszamok.

 

Legyen pl. 2db 32bites seed-unk: s1, s2

 

Ezutan 64 bites veletlenszamokat ugy generalnek, hogy mindig az egyik 32bites felet az egyik seeddel kevernem ki, a masik felet a masikkal...

Előzmény: Bign (2)
NevemTeve Creative Commons License 2006.09.29 0 0 4
Azért modern korunkban már nem olyan ritkaság a HW-randomgenerátor...
dd if=/dev/hwrng of=/tmp/random bs=1024 count=8
locsemege Creative Commons License 2006.09.29 0 0 3
Még nem látom be, hogy ha a seed valamilyen n-re periodikus, ettől miért lenne nagyobb a ciklusa? Ha n páros, ettől az algoritmustól éppen fele lesz a periodicitás. Szerintem.
Előzmény: Bign (2)
Bign Creative Commons License 2006.09.28 0 0 2
Tehát szerintem úgy kéne nagyobb ciklusúvá tenni a véletlenszám generátort, hogy

V1 := random();
V2 := random();
V := (int(v1*100000000)+v2) / 100000000

V1, V2 single
V double

A függvény a V értékét adja vissza.

(100000000 helyett annyit, amennyi az értékes számjegy)
Előzmény: Törölt nick (0)
Bign Creative Commons License 2006.09.28 0 0 1
Szerintem a normál használatra elég a 64 bit-es.
Előzmény: Törölt nick (0)
Bign Creative Commons License 2006.09.28 0 0 topiknyitó
Random függvény majdnem minden programnyelvben van.

Mit lehet róla tudni?
Hány bites a ciklusa?

Hogyan lehet javítani?

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!