日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java random.nextbytes_Java Random类

發(fā)布時(shí)間:2025/3/15 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java random.nextbytes_Java Random类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首頁(yè)?>?基礎(chǔ)教程?>?常用類?>?常用 Random類

Java Random類

Random類中實(shí)現(xiàn)的隨機(jī)算法是偽隨機(jī),也就是有規(guī)則的隨機(jī)。在進(jìn)行隨機(jī)時(shí),隨機(jī)算法的起源數(shù)字稱為種子數(shù)(seed),在種子數(shù)的基礎(chǔ)上進(jìn)行一定的變換,從而產(chǎn)生需要的隨機(jī)數(shù)字。

相同種子數(shù)的Random對(duì)象,相同次數(shù)生成的隨機(jī)數(shù)字是完全相同的。也就是說(shuō),兩個(gè)種子數(shù)相同的Random對(duì)象,第一次生成的隨機(jī)數(shù)字完全相同,第二次生成的隨機(jī)數(shù)字也完全相同。這點(diǎn)在生成多個(gè)隨機(jī)數(shù)字時(shí)需要特別注意。

構(gòu)造方法

public Random()

public Random(long seed)

第一個(gè)構(gòu)造方法使用一個(gè)和當(dāng)前系統(tǒng)時(shí)間對(duì)應(yīng)的相對(duì)時(shí)間有關(guān)的數(shù)字作為種子數(shù),然后使用這個(gè)種子數(shù)構(gòu)造Random對(duì)象。

第二個(gè)構(gòu)造方法可以通過(guò)制定一個(gè)種子數(shù)進(jìn)行創(chuàng)建。

方法

boolean nextBoolean() //返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的均勻分布的boolean值。

void nextBytes(byte[] bytes) //生成隨機(jī)字節(jié)并將其置于用戶提供的 byte 數(shù)組中。

double nextDouble() //返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在0.0和1.0之間均勻分布的 double值。

float nextFloat() //返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在0.0和1.0之間均勻分布float值。

double nextGaussian() //返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、呈高斯(“正態(tài)”)分布的double值,其平均值是0.0標(biāo)準(zhǔn)差是1.0。

int nextInt() //返回下一個(gè)偽隨機(jī)數(shù),它是此隨機(jī)數(shù)生成器的序列中均勻分布的 int 值。

int nextInt(int n) //返回一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在(包括和指定值(不包括)之間均勻分布的int值。

long nextLong() //返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的均勻分布的 long 值。

void setSeed(long seed) //使用單個(gè) long 種子設(shè)置此隨機(jī)數(shù)生成器的種子。

例子

Random使用一個(gè)48位的種子,如果兩個(gè)Random類的實(shí)例是同一個(gè)種子創(chuàng)建的額,對(duì)它們以同樣的順序調(diào)用,將會(huì)參數(shù)同樣的隨機(jī)數(shù)

import java.util.Random;

public class Test {

public static void main(String[] args) throws Exception

{

Random r1=new Random(45);

Random r2=new Random(45);

System.out.println(r1.nextFloat()+";"+r2.nextFloat());

System.out.println(r1.nextInt()+";"+r2.nextInt());

System.out.println(r1.nextLong()+";"+r2.nextLong());

System.out.println(r1.nextBoolean()+";"+r2.nextBoolean());

}

}

結(jié)果是

0.7269366;0.7269366

-266757034;-266757034

-2397444879181054479;-2397444879181054479

false;false

結(jié)果完全一樣。值得指出的是當(dāng)使用默認(rèn)的種子構(gòu)造隨機(jī)數(shù)時(shí),它們屬于同一個(gè)種子

從運(yùn)行結(jié)構(gòu)來(lái)看,如果連個(gè)Random對(duì)象的種子相同,而且方法的調(diào)用順序也相同,則它們會(huì)產(chǎn)生同樣的數(shù)字序列,也就是說(shuō),Random產(chǎn)生的不是真正的隨機(jī)數(shù),而是偽隨機(jī)數(shù)。為了避免兩個(gè)Random對(duì)象產(chǎn)生同樣的數(shù)字序列,我們可以使用當(dāng)前時(shí)間作為種子Random r=new Random(System.currentTimeMillis());

版權(quán)聲明:本文為JAVASCHOOL原創(chuàng)文章,未經(jīng)本站允許不得轉(zhuǎn)載。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的java random.nextbytes_Java Random类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。