Mahdollinen kaksoiskappale: Java: satunnaisluvun tuottaminen alueella
Haluaisin saada satunnaisarvon väliltä 1-50 Javassa.
Miten voin tehdä sen Math.random();
:n avulla?
Miten sidon arvot, jotka Math.random()
palauttaa?
Ensimmäinen ratkaisu on käyttää java.util.Random
-luokkaa:
import java.util.Random;
Random rand = new Random();
// Obtain a number between [0 - 49].
int n = rand.nextInt(50);
// Add 1 to the result to get a number from the required range
// (i.e., [1 - 50]).
n += 1;
Toinen ratkaisu on käyttää Math.random()
-luokkaa:
double random = Math.random() * 49 + 1;
tai
int random = (int)(Math.random() * 50 + 1);
int max = 50;
int min = 1;
double random = Math.random() * 49 + 1;
or
int random = (int )(Math.random() * 50 + 1);
Tämä antaa arvon 1-50, jos kyseessä on int. tai 1.0 (mukaan lukien) - 50.0 (mukaan lukien), jos kyseessä on double.
Miksi?
random()-menetelmä palauttaa satunnaisen arvon luvun välillä 0.0 ja 0.9..., voit kerrot sen 50:llä, joten yläraja on tulee 0.0 - 49.999... kun lisäät 1:n, siitä tulee 1.0 - 50.999..., nyt kun typistät int:ksi, saat 1 - 50:een. (kiitos @rupille kommenteissa). leepoint's mahtava kirjoitus molemmista lähestymistavoista.
Random rand = new Random();
int value = rand.nextInt(50);
Tämä antaa arvon 0-49.
Jos arvo on 1 - 50: rand.nextInt((max - min) + 1) + min;
Lähde Javan satunnaista mahtavuutta.