Jeg ville bare gerne se feks. fordelingsfunktionen for rand(), så jeg selv kunne sikre mig, at den nu også var uniform fordelt (eller at det feks. var en Bernoulli process)
Jeg er overbevist om, at ingen statistisk metode ville kunne bevise at tallene ikke er tilfældigt fordelt af Delphis random generator. Nu ligger der selvfølglig en algoritme bag, så tilfældigt er det ikke ;-). Det kan bare ikke bevises statistisk.....Men det ville være interessant at se denne algoritme, samt vide hvad Borland bruger som "seed", = det første tal i deres random algoritmen. Hvis "frøet" er ens er tilfældet det også.
Også jeg. Men man kan jo altid lave sin egen tilfældighedsalgoritme: Start med et 4-cifret frø. Gang tallet med sig selv. Tag fra resultatet de fire midterste tal. Gang dette tal med sig selv. Tag fra resultatet de fire midterste tal osv... Denne metode kan heller ikke påvises ikke at være statistik tilfældig. Problemet er vel altid at få et tilfældigt frø (hvad kom først hønen eller æget), men man kan måske bruge systemtiden gange med dato og så tage fire tal derfra. Et ganske interessant emne da der jo ikke findes noget der er tilfældigt i denne verden (højest uregneligt og kaotisk), derfor kalder man det vel også stokastisk i statistisk sammenhæng.
hm - jeg tror jeg vil have gang i min gamle statistik bog og udforske det lidt nærmere. (det ligger jo lidt langt væk, når man ikke arbejder med det dagligt ;o) )
Det er ikke utænkeligt, at jeg vælger at tage udgangspunkt i den manuelle metode som du - lanstorp - har opskrevet. Det giver mig i hvert fald en idé om, hvordan tallene er fremkommet. Hvilket jo må siges at være lettere "uforklarligt" med Delphi's egen.
Fandt lige det her: Godtnok til turbo pascal, men mon ikke de har genbrugt metoden i Delphi ?
TN619D.txt RANDOM RANDOMIZE - RANDOM NUMBER GENERATOR FORMULA Category :Pascal Platform :All Product :Turbo Pascal 4.0+
Description: Q. What is the formula used by the random number generator in Turbo Pascal? A. The random number generator in Turbo Pascal uses 32-bit arithmetic. It maintains a 32-bit 'seed', which is treated as an unsigned integer. Each call to Random changes the seed by the formula seed:=multiplier * seed + 1 mod 4294967296 Turbo Pascal uses the multiplier, 134775813. The modulus, 4294967296, is 2 to the power 32. The multiplier was chosen carefully for its nice randomness properties. The seed will take on every 32-bit integer before repeating.
Modulus 4294967296 ha ha... det er nok den sidste af de intelligenstest man får på session. Interessant kode. Prøver ved lejlighed at lave en random-generator selv. Det er vel bare at lave et histogram over et par billioner kørsler og se om man kan stikke Delphis algoritme. Men gad vide hvor de støver frøet op, det kan vel næsten kun være fra systemtiden. Er du interesseret i noget af problematikken kan bogen af Murray Gell-Mann: "Kvarken og Jaguaren" anbefales. Han diskuterer blandt andet det at rette i tilfældige tal så de bliver mere tilfældigt samt meget anden ... Behold bare dine point - Selvom jeg stadig mangler at få de første :-)
Random funktionen er, så vidt jeg ved, basalt set stadig som i de gamle TP dage (beskrevet ovenfor).
NiP
Synes godt om
Ny brugerNybegynder
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.