Random生成隨機數

2021-08-09 20:50:43 字數 1258 閱讀 4759

random有兩個常用的建構函式,乙個是無參的,乙個是有參的,先來看一段**及執行結果:

public

class randomtest

for (int i = 0; i < 3; i++)

}}

執行結果如下:

無參執行結果:-1692516565

無參執行結果:2111480651

無參執行結果:1485452568

有參執行結果:-1155869325

有參執行結果:-1155869325

有參執行結果:-1155869325

我們發現無參時,每次new出來的random物件去獲取隨機數的時候都是不一樣的,而有參時,每次得到的結果都是一樣的,這個引數我們稱之為seed(種子),開啟原始碼我們發現:無參時,會給它乙個預設的引數,這個引數和時間戳有關,所以每次種子都不一樣:

public

random()

public

random(long seed)

}

而這個seed就是random的核心,所以會出現以上的情況。

再來看看下面這段**:

public

class randomtest

}

執行結果為:

-1851693722

1

我們發現當呼叫nextint方法的時候,如果給了引數,那麼獲取到的隨機數的範圍就在0到這個引數之間,如果沒有給定引數,那麼返回的就是乙個隨機的integer的值。

random物件呼叫的方法有如下幾個:

random.nextboolean();//返回隨機的boolean

byte bytes = ;

random.nextbytes(bytes);//返回byte陣列中的隨機值

random.nextdouble();//返回隨機的double

random.nextfloat();//返回隨機的float

random.nextgaussian();//生成的數值符合均值為0標準差為1的高斯/正態分佈

random.nextint();//返回隨機的int值

random.nextint(10);//返回10以內的int

random.nextlong();//返回隨機的long值

Random隨機數生成

下面 演示使用c 11的random庫進行隨機數的生成 include include using namespace std int main 12 3456 78910 1112 1314 15初始化隨機種子 std mt19937 rng rng.seed std random device ...

隨機數的生成 Random

在演算法的學習中,怎麼也躲不過對資料的處理。那麼對於隨機數的生成也是其中重要的一環。最近在使用c 來設計我的演算法程式,遇到了隨機數生成的需要,下面是我的實現 下面來說我的實現過程 首先獲取使用者輸入的陣列容量 arraysize 設定迴圈的 生成隨機數,新增隨機數到列表 for int i 1 i...

random偽隨機數的生成

昨天一朋友問了下我關於他寫的一段程式的錯誤.其中有乙個問題就是關於隨機數的.他的 如下 c c c code for inti 0 i n i 這裡很明顯他是想輸出一串小於100的隨機的數列.可是執行結果輸出的卻是類似 97,97,97,97,97,30,30,30,30,30,30,30,30,3...