Heim > Java > javaLernprogramm > So generieren Sie zufällige Ganzzahlen in Java

So generieren Sie zufällige Ganzzahlen in Java

王林
Freigeben: 2023-05-20 09:28:28
nach vorne
1445 Leute haben es durchsucht

1. java.util.Random

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;
	}
Nach dem Login kopieren

(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?
Nach dem Login kopieren

(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;
	}
}
Nach dem Login kopieren

Ausgabe

7
6
10
8
9
5#🎜 🎜#7
10
8
5

2. Math.random

Dieses 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.

(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;
	}
}
Nach dem Login kopieren

Ausgabe

17

16
20
19
20
20# 🎜 🎜#20
17
20
16

3. Java 8 Random.ints

In Java 8 hinzugefügt Neue Methode java.util.Random

public IntStream ints(int randomNumberOrigin, int randomNumberBound)
	public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Nach dem Login kopieren

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();
	}
Nach dem Login kopieren

(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();		
	}	
}
Nach dem Login kopieren

Ausgabe

34
35

37
33
38
37# 🎜 🎜#34
35
36
37


(3) Extra, für Ihre eigene Referenz.

Generieren 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.

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage