黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java生成隨機(jī)整數(shù)的方法

Java生成隨機(jī)整數(shù)的方法

更新時間:2022-04-21 11:09:42 來源:動力節(jié)點(diǎn) 瀏覽1674次

在本文中,動力節(jié)點(diǎn)小編將向您展示三種在范圍內(nèi)生成隨機(jī)整數(shù)的方法。

java.util.Random.nextInt

數(shù)學(xué)隨機(jī)

java.util.Random.ints (Java 8)

1. java.util.Random

這Random().nextInt(int bound)會生成一個從 0(包括)到 bound(不包括)的隨機(jī)整數(shù)。

(1)代碼片段。對于getRandomNumberInRange(5, 10),這將生成一個介于 5(含)和 10(含)之間的隨機(jī)整數(shù)。

	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)什么是 (max – min) + 1) + min?

上面的公式將生成一個介于 min(含)和 max(含)之間的隨機(jī)整數(shù)。

	//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)生成 10 個隨機(jī)整數(shù)的完整示例,范圍在 5(含)和 10(含)之間。

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;
	}
}

輸出

7
6
10
8
9
5
7
10
8
5

2. 數(shù)學(xué).隨機(jī)

這Math.random()給出了一個從 0.0(包括)到 1.0(不包括)的隨機(jī)雙精度值。

(1)代碼片段。參考1.2,或多或少是相同的公式。

	(int)(Math.random() * ((max - min) + 1)) + min

(2)生成16(含)到20(含)范圍內(nèi)的10個隨機(jī)整數(shù)的完整示例。

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;
	}
}

輸出

17
16
20
19
20
20
20
17
20
16

3.Java 8 Random.ints

在 Java 8 中,添加了新方法java.util.Random

	public IntStream ints(int randomNumberOrigin, int randomNumberBound)
	public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound) 

這Random.ints(int origin, int bound)或Random.ints(int min, int max)生成一個從原點(diǎn)(包括)到綁定(不包括)的隨機(jī)整數(shù)。

(1)代碼片段。

	private static int getRandomNumberInRange(int min, int max) {	
		Random r = new Random();
		return r.ints(min, (max + 1)).findFirst().getAsInt();
	}

(2)生成 33(含)到 38(含)范圍內(nèi)的 10 個隨機(jī)整數(shù)的完整示例。

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();		
	}	
}

輸出 

34
35
37
33
38
37
34
35
36
37

(3)額外,供自己參考。

生成范圍在 33(含)和 38(不含)之間的隨機(jī)整數(shù),流大小為 10。并打印出帶有forEach.

	//Java 8 only
	new Random().ints(10, 33, 38).forEach(System.out::println);

輸出

34
37
37
34
34
35
36
33
37
34

 

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 兔费看全黄三级 | 午夜性刺激在线观看视频 | 最近最新中文字幕免费大全3 | 性欧美巨大极品videos | 日本韩国欧美在线观看 | 在线精品视频成人网 | 久久精品国产欧美日韩亚洲 | 国内最真实的xxxx人伦 | 亚洲午夜精品aaa级久久久久 | 一级床上爽高清播放 | 啪啪网页 | 一级黄色一级片 | 巨尻在线播放 | 黄色三级日韩 | 美女黄色在线 | 亚洲激情五月 | 亚洲精品高清视频 | 在线免费看黄的网站 | 一级做α爱过程免费视频 | 日本免费新一区二区三区 | 欧美日韩在线成人免费 | 欧美日韩国产在线观看 | 午夜网站入口 | 老司机午夜视频在线观看 | 国产日韩精品一区在线观看播放 | 日本免费成人网 | 伦理剧在线 | 日韩亚洲欧洲在线com91tv | fc2在线亚洲一区 | 日韩伦理网在线视频 | 一级黄色国产片 | 亚洲国产精品久久久久久网站 | 国产在线视频欧美亚综合 | 久久天堂夜夜一本婷婷麻豆 | 天天做天天爱夜夜爽毛片毛片 | 日韩欧美国产中文字幕 | 国产精品久久人人做人人爽 | 日日噜噜夜夜狠狠视频buoke | 牛牛热在线视频 | 亚洲欧美h | 欧美成人视|