25. august 2001 - 14:12Der er
19 kommentarer og 1 løsning
81 tilfældig
jeg skal bruge noget script der vælger mellem 81 forskelige tal (1-81)så\'en jeg kan få det til at gøre noget forskeligt efter hvilket tal det er, den skal også helst nemt kunne udbyges til nogle flere tal (det er ikke noget krav)og den må ikke fungere via klokslettet
<ole> Må jeg spørge, hvorfor du ikke ønsker at bruge klokkeslettet? Math.random() er så dårlig en tilfældigheds generator, som de kommer! Det kunne laves langt, langt gange bedre med \'new Date()\', som ville give en markant bedre statistisk fordeling. Ikke perfekt - men heller ikke så langt ude i skoven, som Math.random(). /mvh </bole>
>>ole Med 81 forskellige, kan det heller ikke nå at gå galt for alvor, men selvfølgelig har du da ret, at bruge f.eks. de to sidste cifre i Milliseconds burde give en i praksis fuldstændig præcis fordeling.
Jo, det går zq desværre nok alvorligt galt - alt afhængig af, hvad det skal bruges til. Store områder af de 81 tal, vil kun sjældent blive valgt med Math.random() - mens andre tal vil være kraftigt overrepræsenterede. Dette må da kunne gøre det bedre:
<script language=\"JavaScript\"> antal = 81; // Ændres efter behag nu = new Date(); nu = nu.getTime().toString(); rand = parseInt(nu.substring(nu.length-2)); rand = Math.round((rand/100)*(antal-1)); alert(rand); </script>
jeg får: ( med 1000 kald, 10 udfald ) ca 10 tests. IE4: varians: min 5.2%, max 10.9% NS4: varians: min 5.5%, max 10.6%
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.