Avatar billede cpjg Nybegynder
07. maj 2002 - 13:18 Der er 7 kommentarer og
1 løsning

Hvordan fungere Random()???

Hvordan er det muligt for en computer at udføre noget tilfældigt?
Hvordan fungerer Random-funktionen i Delphi?
Det nytter ikke at i kun giver mig selve kildekoden jeg skal også have en forklaring på HVORDAN det kan lade sig gøre!

Avatar billede martinlind Nybegynder
07. maj 2002 - 13:23 #1
Fordi den bruger tiden som faktor, laver den noget som man kalder for tilfældigt, men det er ikke helt tilfældigt, der er noget der hedder RanSeed som delphi også bruger, og der er ligesom nøglen til tilfældigheds generatoren, og har du nøglen kan du genskabe de samme "tilfældige tal" igen

/Martin
Avatar billede cpjg Nybegynder
07. maj 2002 - 13:30 #2
jammen hvordan bruger den tiden som faktor?
Hvordan fungere den?

Random-funktionen (kaldes noget andet i andre sprog/miljøer) findes jo ikke kun i Delphi, men i alt inden for programmeringens verden.
Er der nogen der kan give mig både source-code til en tilfældighedsgenerator?
Avatar billede martinlind Nybegynder
07. maj 2002 - 13:32 #3
Den kan du finde i delphi
Avatar billede d34c0n Praktikant
07. maj 2002 - 13:49 #4
var I : Integer;
begin
Randomize;
for I := 0 to 100 do Label1.Caption := IntToStr(Random(100));
Avatar billede cpjg Nybegynder
07. maj 2002 - 14:05 #5
ja, ja men jeg vil ikke have at vide hvordan man bruger den.
Jeg vil have at vide hvordan den FUNGERER!!
Avatar billede d34c0n Praktikant
07. maj 2002 - 14:09 #6
Den fungerer på den måde, at man vælger et tal til et tal som den kun må bruge imellem og derefter vælger den tilfældigt et tal mellem det du satte den til. Altså f.eks. for integer := 0 to 100.
Avatar billede lanstorp Nybegynder
07. maj 2002 - 14:11 #7
Fidusen er jo, at det ikke er tilfældige tal der genereres. Men en fast algoritme der fodres med et tal. Et såkaldt frø (seed). Algoritmen kan ikke statistisk bevises ikke at være tilfældig. Selv om den selvfølgelig ikke er tilfældigt. Det er der jo ingenting der er, det kan kun være kaotisk. I System.pas er koden til frøet:
Seed = ((Timer * 60 + min) * 60 + Sek) * 1000 + mSek
Derefter kværnes formlen:
Seed:=134775813 * Seed + 1 Mod 4294967296
Dvs. to computerer der finder et tilfældigt tal med Delphi i samme milisekund vil være ens. Men 'Mod 4294967296' er da en rimmelig skummel regnefaktor. Summa: http://www.eksperten.dk/spm/190086
Avatar billede hermandsen Juniormester
07. maj 2002 - 15:42 #8
Følger du ikke med i dine egne spørgsmål! :)
http://exp.dk/spm/206308
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