1 svar
32 visningar
Mhayia är nöjd med hjälpen
Mhayia 6
Postad: 12 maj 13:53

Slumpa ett tal mellan 1-10.

Hej!

 

Jag håller på med en uppgift där vi ska slumpa tal, men har svårt att förstå skapandet av en slumpad siffra, var den börjar och egentligen slutar. Så det jag undrar är OM följande: 

int maxNumber = 10;

int answer = (int)(Math.random() * maxNumber) +1;

 

Vilka tal slumpar jag då mellan? 0-10, 1-10, 0-11 eller 1-11?

Jag vill BARA slumpa mellan 1-10, men är osäker på om
det är så jag ska skriva då. Möjligtvis ta bort "+1" och bara skriva:

int answer = (int)(Math.random() * maxNumber);

 

All hjälp uppskattas, för google gjorde mig bara mer förvirrad.. 

/Alexandra

Laguna 19922
Postad: 12 maj 14:15

Jag har inte slagit upp Math.random(), men om den beter sig rimligt enligt ovanstående kod så returnerar den ett flyttal mellan 0 och 0.9999999999999999. (Förmodligen inte fullt så många nior, men det flyttal som är närmast mindre än 1 i alla fall.)

Så om man multiplicerar med 10 så har man något mellan 0 och 9.99999999999999, och heltalsdelen är då från och med 0 till och med 9.

Vill man ha från och med 1 till och med 10 så lägger man till 1 som du gör.

En annan vanlig variant är att slumptalsfunktionen returnerar ett ickenegativt heltal, från och med 0 till och med 231-1 (eller någon annan bra tvåpotens). Då får man göra om det till flyttal och dividera med maximala värdet.

Svara Avbryt
Close