中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

java生成隨機(jī)數(shù)方法大全(可指定范圍、分布方式、類(lèi)型、種子)

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
 
import java.util.Random;

/**
 * Java實(shí)用工具類(lèi)庫(kù)中的類(lèi)java.util.Random提供了產(chǎn)生各種類(lèi)型隨機(jī)數(shù)的方法。
 * 它可以產(chǎn)生int、long、float、double以及Goussian等類(lèi)型的隨機(jī)數(shù)。
 * 
 * java.lang.Math中的方法random()只產(chǎn)生double型的隨機(jī)數(shù)。
 */
public class RandomNumber {

	public static void main(String[] args) {

		// 使用java.lang.Math的random方法生成隨機(jī)數(shù)
		System.out.println("Math.random(): " + Math.random());

		// 使用不帶參數(shù)的構(gòu)造方法構(gòu)造java.util.Random對(duì)象
		System.out.println("使用不帶參數(shù)的構(gòu)造方法構(gòu)造的Random對(duì)象:");
		Random rd1 = new Random();
		// 產(chǎn)生各種類(lèi)型的隨機(jī)數(shù)
		// 按均勻分布產(chǎn)生整數(shù)
		System.out.println("int: " + rd1.nextInt());
		// 按均勻分布產(chǎn)生長(zhǎng)整數(shù)
		System.out.println("long: " + rd1.nextLong());
		// 按均勻分布產(chǎn)生大于等于0,小于1的float數(shù)[0, 1)
		System.out.println("float: " + rd1.nextFloat());
		// 按均勻分布產(chǎn)生[0, 1)范圍的double數(shù)
		System.out.println("double: " + rd1.nextDouble());
		// 按正態(tài)分布產(chǎn)生隨機(jī)數(shù)
		System.out.println("Gaussian: " + rd1.nextGaussian());

		// 指定隨機(jī)數(shù)產(chǎn)生的范圍
		System.out.print("[0,10)范圍內(nèi)隨機(jī)整數(shù)序列: ");
		for (int i = 0; i < 10; i++) {
			// Random的nextInt(int n)方法返回一個(gè)[0, n)范圍內(nèi)的隨機(jī)數(shù)
			System.out.print(rd1.nextInt(10) + "  ");
		}
		System.out.println();
		System.out.print("[5,23)范圍內(nèi)隨機(jī)整數(shù)序列: ");
		for (int i = 0; i < 10; i++) {
			// 因?yàn)閚extInt(int n)方法的范圍是從0開(kāi)始的,
			// 所以需要把區(qū)間[5,28)轉(zhuǎn)換成5 + [0, 23)。
			System.out.print(5 + rd1.nextInt(23) + "  ");
		}
		System.out.println();
		System.out.print("利用nextFloat()生成[0,99)范圍內(nèi)的隨機(jī)整數(shù)序列: ");
		for (int i = 0; i < 10; i++) {
			System.out.print((int) (rd1.nextFloat() * 100) + "  ");
		}
		System.out.println();
		System.out.println();

		// 使用帶參數(shù)的構(gòu)造方法構(gòu)造Random對(duì)象
		// 構(gòu)造函數(shù)的參數(shù)是long類(lèi)型,是生成隨機(jī)數(shù)的種子。
		System.out.println("使用帶參數(shù)的構(gòu)造方法構(gòu)造的Random對(duì)象:");
		Random ran2 = new Random(10);
		// 對(duì)于種子相同的Random對(duì)象,生成的隨機(jī)數(shù)序列是一樣的。
		System.out.println("使用種子為10的Random對(duì)象生成[0,10)內(nèi)隨機(jī)整數(shù)序列: ");
		for (int i = 0; i < 10; i++) {
			System.out.print(ran2.nextInt(10) + "  ");
		}
		System.out.println();
		Random ran3 = new Random(10);
		System.out.println("使用另一個(gè)種子為10的Random對(duì)象生成[0,10)內(nèi)隨機(jī)整數(shù)序列: ");
		for (int i = 0; i < 10; i++) {
			System.out.print(ran3.nextInt(10) + "  ");
		}
		System.out.println();
		// ran2和ran3生成的隨機(jī)數(shù)序列是一樣的,如果使用兩個(gè)沒(méi)帶參數(shù)構(gòu)造函數(shù)生成的Random對(duì)象,
		// 則不會(huì)出現(xiàn)這種情況,這是因?yàn)樵跊](méi)帶參數(shù)構(gòu)造函數(shù)生成的Random對(duì)象的種子缺省是當(dāng)前系統(tǒng)時(shí)間的毫秒數(shù)。

		// 另外,直接使用Random無(wú)法避免生成重復(fù)的數(shù)字,如果需要生成不重復(fù)的隨機(jī)數(shù)序列,需要借助數(shù)組和集合類(lèi)

	}
}

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:java POI讀取Excel文件

下一篇:Struts2Utils 工具類(lèi)