Willekeurige getallen krijgen in Java

Ik wil graag een willekeurige waarde tussen 1 en 50 in Java.

Hoe kan ik dat doen met behulp van Math.random();?

Hoe begrens ik de waarden die Math.random()retourneert?


Antwoord 1, autoriteit 100%

De eerste oplossing is om de klasse java.util.Randomte gebruiken:

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;

Een andere oplossing is het gebruik van Math.random():

double random = Math.random() * 49 + 1;

of

int random = (int)(Math.random() * 50 + 1);

Antwoord 2, autoriteit 76%

int max = 50;
int min = 1;

1. Math.random()

gebruiken

double random = Math.random() * 49 + 1;
or
int random = (int )(Math.random() * 50 + 1);

Dit geeft je een waarde van 1 tot 50 in het geval van int
of 1,0 (inclusief) tot 50,0 (exclusief) in geval van dubbele

Waarom?

random() methode retourneert een willekeurige
getal tussen 0,0 en 0,9…, jij
vermenigvuldig het met 50, dus bovengrens
wordt 0,0 tot 49,999… als je 1 toevoegt, wordt het 1,0 tot 50,999…, nu als je afkapt tot int, krijg je 1 tot 50. (met dank aan @rup in opmerkingen). leepoint’sgeweldige beschrijving van beide benaderingen.

2. Willekeurige klasse gebruiken in Java.

Random rand = new Random(); 
int value = rand.nextInt(50); 

Dit geeft een waarde van 0 tot 49.

Voor 1 tot 50: rand.nextInt((max - min) + 1) + min;

Bronvan wat Java Random awesomeness.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

3 + nine =

Other episodes