Article View: be.comp.programming
Article #12215Re: random functie in C++ STL
From: Benoit Liessens
Date: Sat, 01 Dec 2001 17:16
Date: Sat, 01 Dec 2001 17:16
46 lines
2445 bytes
2445 bytes
Yseboodt <lennartyseboodt@skynet.be> schreef in berichtnieuws
3c08eaa0$0$27955$ba620e4c@news.skynet.be...
>
> rand/srand geven "slechte" random getallen, met een vrij hoge graad van
srand48() gebruik ik. Als ik me goed herinner geeft die een 'unsigned long'
als random getal. Eigenlijk moet ik random karakters moet hebben uit een
reeks van 14:
unsigned long r = srand48();
if r<= ULONG_MAX/ 14 return 'U';
if r<= 2* ULONG_MAX/ 14 return 'D';
if r<=3*ULONG_MAX/ 14 return 'R';
etc ...
Op 1.000.000 iteraties komen alle 14 karakters wel ong. even vaak voor. Goed
genoeg voor mijn prog.
Benoit
> voorspelbaarheid. Ik weet neit wat voor programma je maakt dus ik weet
niet
> in hoeverre dit belangrijk is, maar als je echt SUPER random getallen wil
en
> als het ENKEL onder linux moet werken dan kan je /dev/random openen. Dit
Nu je het zegt, /dev/random daar had ik al van gehoord. En het voorbeeldje
hieronder is wel duidelijk.
> geeft maar een beperkt aantal bytes, maar deze zijn ongeloofelijk random.
> Je kan ook /dev/urandom openen voor een grotere masse random bytes.
>
> Indien je bijvoorbeeld een integer wil volstoppen kan
>
> int c;
> long R;
> FILE *f;
> f=fopen("/dev/random","r");
> for (c=0 ;c<=3; c++)
> {
> R+=fgetc(f);
> R<<=8;
> }
>
Technical Details
Message-ID:
<3c09110b$0$12219$4d4efb8e@news.be.uu.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!dispose.news.demon.net!demon!easynet-monga!easynet.net!tank.news.pipex.net!pipex!lnewspeer01.lnd.ops.eu.uu.net!lnewsifeed03.lnd.ops.eu.uu.net!lnewsifeed02.lnd.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.be.uu.net!not-for-mailReferences:
<3bea7fad$0$12226$4d4efb8e@news.be.uu.net> <3c08eaa0$0$27955$ba620e4c@news.skynet.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,e4605bf6a9a91351 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-12-01 09:19:09 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!dispose.news.demon.net!demon!easynet-monga!easynet.net!tank.news.pipex.net!pipex!lnewspeer01.lnd.ops.eu.uu.net!lnewsifeed03.lnd.ops.eu.uu.net!lnewsifeed02.lnd.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.be.uu.net!not-for-mail From: "Benoit Liessens" <benoit.liessens@freeweb.be> Newsgroups: be.comp.programming References: <3bea7fad$0$12226$4d4efb8e@news.be.uu.net> <3c08eaa0$0$27955$ba620e4c@news.skynet.be> Subject: Re: random functie in C++ STL Date: Sat, 1 Dec 2001 18:16:12 +0100 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Lines: 48 Message-ID: <3c09110b$0$12219$4d4efb8e@news.be.uu.net> NNTP-Posting-Host: uu212-190-6-91.unknown.uunet.be X-Trace: 1007227147 news.be.uu.net 12219 212.190.6.91 X-Complaints-To: abuse@be.uu.net