Genererer tilfeldige tall i et område i Java

1. Oversikt

I denne opplæringen vil vi utforske forskjellige måter å generere tilfeldige tall innenfor et område.

2. Generere tilfeldige tall i et område

2.1. Matematikk. Tilfeldig

De Matematikk. Tilfeldig gir en tilfeldig dobbelt verdi som er større enn eller lik 0,0 og mindre enn 1,0.

La oss bruke Matematikk. Tilfeldig metode for å generere et tilfeldig tall i et gitt område:

public int getRandomNumber (int min, int max) {return (int) ((Math.random () * (max - min)) + min); }

Hvorfor fungerer det? La oss se på hva som skjer når Matematikk. Tilfeldig returnerer 0,0, det er lavest mulig utgang:

0,0 * (maks - min) + min => min

Så det laveste tallet vi kan få er min.

Hvis Matematikk. Tilfeldig returnerer 1.0, det er høyest mulig utgang, så får vi:

1,0 * (maks - min) + min => maks - min + min => maks

Så det høyeste tallet vi kan få er maks.

La oss se det samme mønsteret gjentatt med Tilfeldig # nesteInt i neste avsnitt.

2.2. java.util.Random.nextInt

En forekomst av java.util.Random kan også brukes til å gjøre det samme.

La oss gjøre bruk av java.util.Random.nextInt metode for å få et tilfeldig tall:

public int getRandomNumberUsingNextInt (int min, int max) {Random random = new Random (); return random.nextInt (max - min) + min; }

De min parameter (opprinnelse) er inkludert, mens maks, the bound, er eksklusiv

2.3. java.util.Random.ints

De java.util.Random.ints metoden returnerer en IntStream av tilfeldige heltall.

Så, vi kan bruke java.util.Random.ints metode og returnere et tilfeldig tall:

public int getRandomNumberUsingInts (int min, int max) {Random random = new Random (); return random.ints (min, max) .findFirst () .getAsInt (); }

Også her, den angitte opprinnelsen min er inkluderende og maks er eksklusiv.

3. Konklusjon

I denne artikkelen så vi alternative måter å generere tilfeldige tall innenfor et område.

Kodebiter, som alltid, finnes på GitHub.