Avatar billede dj-meisner Nybegynder
20. juli 2005 - 16:24 Der er 6 kommentarer og
1 løsning

Javascript: Random

Hvordan laver man en random i Javascript?
Avatar billede roenving Novice
20. juli 2005 - 16:27 #1
Math.random() giver et tal mellem 0 og 1: [0;1[

-- så et heltal mellem f.eks. 0 og 10 (altså 0, 1, ... 9 !-) ser sådan ud:

Math.floor(Math.random()*10)
Avatar billede dj-meisner Nybegynder
20. juli 2005 - 16:28 #2
Smid svar, lavede

num = Math.random();
num = 1 + ( num * ((102 - 1)-1));
num = Math.round(num);
alert(num);
Avatar billede roenving Novice
20. juli 2005 - 16:40 #3
Hvorfor trække fra og lægge til en masse gange, når du bare skal:

Math.floor(Math.random()*102)+1 ?-)

-- hvilket vil give tal fra 1 til 102 fuldstændigt ligeligt fordelt (ved store oplag selvfølgelig !-), hvor benyttelsen af Math.round() vil give de to yderste ½ chance i forhold til de 100 andre muligheder ...

-- det simple eksempel, du kan prøve, er at lave et bare lidt stort på 3 i stedet for 102, så vil ca. halvdelen af de tilfældige tal være 2 !-)
Avatar billede roenving Novice
20. juli 2005 - 16:41 #4
Iøvrigt velbekomme '-)
Avatar billede nielle Nybegynder
20. juli 2005 - 17:26 #5
Formlen:

    num = 1 + ( num * ((102 - 1)-1));

- kan forkortes til:

    num = 1 + num*100

- så hvorfor skrive den på den besværlige måde?

Formelerne:

    num = Math.random();
    num = 1 + num*100;
    num = Math.round(num);

- giver, som roenving nævner, *ikke* en ligelig fordeling over heltallene 1 - 100.

Dette opnås ved at bruge floor:

    num = Math.random();
    num = 1 + num*100;
    num = Math.floor(num);
Avatar billede roenving Novice
21. juli 2005 - 11:40 #6
-- og hele forklaringen kom med her: http://www.eksperten.dk/spm/633358#rid5666958
Avatar billede roenving Novice
22. juli 2005 - 16:39 #7
-- og tak for point ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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