Heim >Java >javaLernprogramm >So generieren Sie zufällige Ganzzahlen in Java
This Random().nextInt(intbound) generiert eine zufällige Ganzzahl von 0 (einschließlich) bis gebunden (exklusiv).
(1) Code-Snippet
Für getRandomNumberInRange(5, 10) wird dadurch eine zufällige Ganzzahl zwischen 5 (einschließlich) und 10 (einschließlich) generiert.
private static int getRandomNumberInRange(int min, int max) { if (min >= max) { throw new IllegalArgumentException("max must be greater than min"); } Random r = new Random(); return r.nextInt((max - min) + 1) + min; }
(2)Was ist (max – min) + 1) + min?
Die obige Formel generiert einen Wert zwischen min (einschließlich) und max (einschließlich). ) ).
//Random().nextInt(int bound) = Random integer from 0 (inclusive) to bound (exclusive) //1. nextInt(range) = nextInt(max - min) new Random().nextInt(5); // [0...4] [min = 0, max = 4] new Random().nextInt(6); // [0...5] new Random().nextInt(7); // [0...6] new Random().nextInt(8); // [0...7] new Random().nextInt(9); // [0...8] new Random().nextInt(10); // [0...9] new Random().nextInt(11); // [0...10] //2. To include the last value (max value) = (range + 1) new Random().nextInt(5 + 1) // [0...5] [min = 0, max = 5] new Random().nextInt(6 + 1) // [0...6] new Random().nextInt(7 + 1) // [0...7] new Random().nextInt(8 + 1) // [0...8] new Random().nextInt(9 + 1) // [0...9] new Random().nextInt(10 + 1) // [0...10] new Random().nextInt(11 + 1) // [0...11] //3. To define a start value (min value) in a range, // For example, the range should start from 10 = (range + 1) + min new Random().nextInt(5 + 1) + 10 // [0...5] + 10 = [10...15] new Random().nextInt(6 + 1) + 10 // [0...6] + 10 = [10...16] new Random().nextInt(7 + 1) + 10 // [0...7] + 10 = [10...17] new Random().nextInt(8 + 1) + 10 // [0...8] + 10 = [10...18] new Random().nextInt(9 + 1) + 10 // [0...9] + 10 = [10...19] new Random().nextInt(10 + 1) + 10 // [0...10] + 10 = [10...20] new Random().nextInt(11 + 1) + 10 // [0...11] + 10 = [10...21] // Range = (max - min) // So, the final formula is ((max - min) + 1) + min //4. Test [10...30] // min = 10 , max = 30, range = (max - min) new Random().nextInt((max - min) + 1) + min new Random().nextInt((30 - 10) + 1) + 10 new Random().nextInt((20) + 1) + 10 new Random().nextInt(21) + 10 //[0...20] + 10 = [10...30] //5. Test [15...99] // min = 15 , max = 99, range = (max - min) new Random().nextInt((max - min) + 1) + min new Random().nextInt((99 - 15) + 1) + 15 new Random().nextInt((84) + 1) + 15 new Random().nextInt(85) + 15 //[0...84] + 15 = [15...99] //Done, understand?
(3) Generieren Sie ein vollständiges Beispiel von 10 zufälligen ganzen Zahlen im Bereich zwischen 5 (einschließlich) und 10 (einschließlich).
package com.mkyong.example.test; import java.util.Random; public class TestRandom { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(getRandomNumberInRange(5, 10)); } } private static int getRandomNumberInRange(int min, int max) { if (min >= max) { throw new IllegalArgumentException("max must be greater than min"); } Random r = new Random(); return r.nextInt((max - min) + 1) + min; } }
Ausgabe
2. Math.randomDieses Math.random() ergibt Gibt einen zufälligen Double-Wert von 0,0 (einschließlich) bis 1,0 (exklusiv) aus. (1) Codeausschnitt. Bezogen auf 1.2 ist es mehr oder weniger die gleiche Formel.7
6
10
8
9
5#🎜 🎜#7
10
8
5
(int)(Math.random() * ((max - min) + 1)) + min(2) generieren Vollständiges Beispiel für 10 zufällige Ganzzahlen im Bereich von 16 (einschließlich) bis 20 (einschließlich).
package com.mkyong.example.test; public class TestRandom { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(getRandomNumberInRange(16, 20)); } } private static int getRandomNumberInRange(int min, int max) { if (min >= max) { throw new IllegalArgumentException("max must be greater than min"); } return (int)(Math.random() * ((max - min) + 1)) + min; } }Ausgabe
1716
3. Java 8 Random.ints
20
19
20
20# 🎜 🎜#20
17
20
16
public IntStream ints(int randomNumberOrigin, int randomNumberBound) public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Diese Random.ints(int origin, intbound) oder Random.ints(int min, int max) generiert eine Grenze vom Ursprung (inklusive) (exklusiv) zufällig ganze Zahl.
(1) Codeausschnitt.
private static int getRandomNumberInRange(int min, int max) { Random r = new Random(); return r.ints(min, (max + 1)).findFirst().getAsInt(); }
(2) Generieren Sie ein vollständiges Beispiel von 10 zufälligen ganzen Zahlen im Bereich von 33 (einschließlich) bis 38 (einschließlich).
package com.mkyong.form.test; import java.util.Random; public class TestRandom { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(getRandomNumberInRange(33, 38)); } } private static int getRandomNumberInRange(int min, int max) { Random r = new Random(); return r.ints(min, (max + 1)).limit(1).findFirst().getAsInt(); } }
Ausgabe
3435Generieren Sie eine zufällige Ganzzahl im Bereich zwischen 33 (einschließlich) und 38 (ausschließlich) mit einer Stream-Größe von 10. Und mit forEach ausdrucken.37
33
38
37# 🎜 🎜#34
35
36
37
(3) Extra, für Ihre eigene Referenz.
Das obige ist der detaillierte Inhalt vonSo generieren Sie zufällige Ganzzahlen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!