Avatar billede w13 Novice
25. januar 2007 - 18:08 Der er 3 kommentarer og
1 løsning

Forudsigelig randomize

Hej Eksperter.

Jeg har nu rodet mig ud i noget arbejde, der involverer en hel del brug af Randomize-funktionen. F.eks. bruger jeg følgende:

Randomize;
rnd:=(Random(10) + 1);

Jeg har en timer, der kører den med et bestemt interval og skriver resultatet på skærmen. Her kan jeg se at resultat kan forudsiges. Der er nemlig en kraftig tendens til at den trækker 3 fra det forrige resultat. F.eks får jeg talrækken:
10-7-4-1-8-5-2-9-6-3-10...
I mit program er det meget vigtigt at resultat ikke kan forudsiges.

Ligeledes får jeg et problem med følgende:

Randomize;
rnd:=(Random(100) + 1);

Her varierer resultat kun mellem tallene 70-100. Og ofte er der den tendens at jeg f.eks får talrækken:
93-76-92-75-91-74-90-73...

Er der nogen af jer der kan hjælpe mig med få mig Randomize, til at være rigtig random?
På forhånd tak.
Avatar billede martinlind Nybegynder
25. januar 2007 - 18:21 #1
Det bliver den aldrig !

Du kan prøve at kigge hvad dit RandSeed når du har kørt Randomize, hvis RandSeed er den samme giver Random de samme tal, men Delphi's Random func. har ikke et særligt god ry. Du kan jo se om du kan finde et windows api i kald, ellers så brug en GUID som udgangs punkt, og lav noget selv. En GUID bliver jo aldrig ens, så det ville vel godt kunne bruges til noget.
Avatar billede arne_v Ekspert
25. januar 2007 - 18:31 #2
for det foerste: kald kun Randomize en enkelt gang ved program start
Avatar billede w13 Novice
25. januar 2007 - 18:38 #3
Hey..
Avatar billede w13 Novice
25. januar 2007 - 18:39 #4
Sorry, fik lige trykket for hurtigt.. jeg har fundet noget materiale om GUID nu, som jeg prøver at læse..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester