隨機數範圍擴充套件方法

2021-06-01 06:22:34 字數 572 閱讀 9119

問題:

已知random3()能夠生成[1-3]範圍的隨機數,求乙個能夠生成[1-9]範圍的隨機數。

version1.0:

事實上,由上邊的**我們可以發現乙個規律,我們返回的值為表示式 

3*(random3()-1)+random3(); 另一方面,通過概率論我們也可以容

易的證明該表示式以1/9的概率取[1,9]之間的任一整數。

int random9()

return random_number[random3()-1][random3()-1];

}

推廣:

如果我們現在要求[1,5]之間的隨機數生成器該怎麼做呢?

可以想到的方法就是sample rejection,即生成[1,9]之間數,如果數的範圍

不在[1,5]範圍內,則重新取樣。

泛化:已知random_m()的隨機數生成器,求random_n()的隨機數生成器,m

這個時候我們只需返回m*(random_m()-1)+random_m()即可。

js隨機數 範圍隨機 整數

js常用方法 math.ceil n 向上取整。返回 n的最小整數。math.floor n 向下取整。返回為n的整數部分。math.round n 四捨五入的整數。math.random n 1.0 之間的乙個偽隨機數。含0,不含1 math.ceil math.random 10 1到10的隨機...

生成指定範圍的隨機數 生成某個範圍的隨機數

每次進行將本地 提交到遠端的時候總會要求輸入賬號和密碼 git push origin master 而且會彈出以下介面 我輸入賬號和密碼,明明是對的,卻提示登陸失敗 logon failed,use ctrl c to cancel basic credential prompt.會彈出這個登陸框...

隨機數 偽隨機數

隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...