1樓:匿名使用者
可以用構造方法 random r=new random(1234);//自己的種子1234 也可用 r.setseed(1234);
什麼是隨機數及隨機數種子,能不能詳細通俗介紹一下?
2樓:小肥肥啊
隨機數就是就隨機數種子中取出的數。種子就是個序號,這個序號交給乙個數列管理器,通過這個序號,你從管理器中取出乙個數列,這個數列就是你通過那個序號得到的隨機數。
但這個隨技術並不真正隨機。因為它是通過某個演算法的得到。也就是說你給數列管理器同乙個序號將得到同樣乙個「隨機」數列。
也就是說種子和隨機數列是一一對應的。=f(x), x 就是種子,f()是演算法,是數列,這個數列看上去是隨機的,這是因為an的通項很複雜。
例如:從1、2、3、4、5、6、7、8、9、0這十個數中隨機取出乙個數,取出的數是6的話,那麼6就叫隨機數。十個數字就叫隨機數種子。
如果是從1到50之間取數字,取出的數字叫隨機數,這1到50那50個數字就叫隨機數種子。
3樓:匿名使用者
隨機數在科學研究與工程實際中有著極其重要的應用!
簡單來說,隨機數就是乙個數列,這個數列可能滿足一定的概率分布,也許其滿足的分布並不為我們所知。
不知道你是否知道乙個經典的例子:「使用一根針和兩條線求圓周率」(如果不知到你可以搜一下)。這個實驗我們可以使用數學模擬(蒙特卡羅模擬)的方法來進行,這樣可以最大限度的節約實驗所消耗的時間(使用計算機),也在一定程度上剔除了人為因素的影響。
但有乙個前提必須考慮,就是模擬的隨機性要好。怎樣體現呢,這時就需要使用「好」的隨機數來替代我們的物理實驗。
據我所知,隨機數在科學**上有著非常重要的應用!還有密碼學中,隨機數也是基礎之一。
數學方法產生隨機數應該稱之為「偽隨機數」,只有使用物理方法才能得到真正的隨機數!
為了得到數學上的偽隨機數,我們就要研究「為隨機數發生器」!
通常,0-1區間上的均勻隨機數是基礎的基礎,因此,大量的工作是圍繞它的!在此基礎之上,又可以得到符合正態分佈,beta分布等的偽隨機數。
「種子」是什麼呢?
經典的偽隨機數發生器是這樣的:
x(n+1)= a * x(n) + b
顯然通過上式我們能夠得到乙個數列,前提是x(0)應該給出,依次我們就可以算出x(1),x(2)...;當然不同的x(0)就會得到不同的數列。
可以說:「x(0)」就是種子。
對於乙個應用級的偽隨機數發生器,所有的「偽隨機數」,均勻的分布於乙個「軌道」上,幾乎所有的數都可以做為種子。數字「0」,有時是乙個特例,不能作為種子,當然它取決於你使用的隨機數發生器!
呵呵,樓上說的言簡意賅,但那個函式並不複雜,你可以搜一下「素數模偽隨機數發生器」
x(n+1)= a * x(n),
只不過這個a的確定不是太簡單,要求隨機性好(期望0.5,標準差1/12);周期長!
當然還有更好的發生器,週期可達2^6***x - 1(具體的忘了)!
4樓:匿名使用者
我的理解啊,大家**:
種子就是個序號,這個序號交給乙個數列管理器,通過這個序號,你從管理器中取出乙個數列,這個數列就是你通過那個序號得到的隨機數。但這個隨技術並不真正隨機。因為它是通過某個演算法的得到。
也就是說你給數列管理器同乙個序號將得到同樣乙個「隨機」數列。
也就是說種子和隨機數列是一一對應的。=f(x), x 就是種子,f()是演算法,是數列,這個數列看上去是隨機的,這是因為an的通項很複雜。
c怎麼獲取隨機數C怎麼獲取隨機數
在開發過程中,常常要產生隨機數,如生成靜態 html 網頁時,檔名通常用產生隨機數的方式獲得,生成定單的時候,定單號也可以用產生隨機數的方式獲得等。在 c 中,一般都用 random 產生隨機數,它可任意指定產生隨機數範圍。random 結合陣列,可以產生一些特殊範圍的隨機數,以滿足特殊的需要。一 ...
按鍵精靈輸入隨機數問題,按鍵精靈 輸入隨機數文字
randomize d1 int 40 rnd 170 1000d2 int 25 rnd 320 1000不過這兩個隨機數可能是相關的。那你就在產生隨機數之前各自初始化一次就行 就是randomize語句 第一次玩啊,那就玩明白點的,首先最好先了解一下隨機函式rnd是怎樣的,看如下說明 隨機數函式...
偽隨機數演算法basic進,不要c語言
知道的不多,呵呵 所謂偽隨機數,就是說vb中所謂的隨機數函式 rnd 並不是真正 完全 的隨機數,它還是受到某些條件約束的。舉個例子吧,新建乙個工程,然後在form load事件中加入msgbox rnd,不加其它任何語句,你會發現程式每次執行時彈出的資料都相同。所以,若要生成較好的隨機數,一般會在...