隨機發生數種子是什麼?

General 更新 2024-10-03

隨機種子數是什麼意思

使用隨機數之前一般要種一個種子,一般是用系統時間產生一個種子,你可以試憨下,如果每次的種子都是一樣的,那麼產生的隨機數的順序也是一樣的

什麼叫隨機數種子

一般計算機的隨機數都是偽隨機數,以一個真隨機數(種子)作為初始條件,然後用一定的算法不停迭代產生隨機數。

2一般種子可以以當前的系統時間,這是完全隨機的

算法1:平方取中法。

1)將種子設為X0,並mod 10000得到4位數

2)將它平方得到一個8位數(不足8位時前面補0)3)取中間的4位數可得到下一個4位隨機數X1

4)重複1-3步,即可產生多個隨機數

這個算法的一個主要缺點是最終它會退化成0,不能繼續產生隨機數。

詳見百度百科:baike.baidu.com/...Zo2Yp-

生成隨機數的種子 5分

你設置的隨機數可能存在邏輯性錯誤,或者就是你取隨機數變量或者間隔時間的問題。

用當前機器時間作隨機種子是什麼意思啊

就是用當前時間為基準,來產生隨機數,如果程序用固定的數產生隨機數,結果也是固定的,用時間產生,隨時間不同,產生的數字也不同。

為什麼用了隨機種子,產生的隨機數是一樣的

srand函數每個程序只需調用一次,而不需要調用多次。要理解srand函數和rand函數的本質。

把srand放在循環體外面,否則,因為程序執行的很快,時間函數得到的值一樣,種子就一樣,所以,rand的結果也一樣了。

參考如下:

srand((unsigned int)time(NULL));

for (i=0; i

{

......

x1 = rand() % 500

....

}

隨機數種子是做什麼的?

隨機函數產生範是一種偽隨機數,它實際是一種序列發生器,有固定的算法,只有當種子不同時,序列才不同,所以不應該把種子固定在程序中,應該用隨機產生的數做種子,如程序運行時的時間等。

以c++為例,應先用srand()設置不同種子,否則每次調用rand()得到的值是一樣的。

為什麼種子一樣,用rand()產生的隨機數就會一樣

其實rand()的原理是這樣的。

先設置一個種子,srand(seed),如果你沒有設置,程序會自動設置,有可能是一個固定的值,也可能是系統時間。具體看是什麼語言。

當第一次計算rand的時候,它用seed的值帶入一個公式產生一個值,並將這個值或者這個值的一部分返回給你。再次調用,在公式中帶入上次產生的值。這樣反覆迭代,就是一個序列。所以,如果種子是相同的,那麼你得到的隨機數是什麼取決於你第幾次調用rand()。

下面是vc的實現方法,如果能看懂就很容易明白了。

void srand(unsigned int seed)

{

holdrand = (long)seed;

}

int rand()

{

return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);

}

什麼是隨機數及隨機數種子,能不能詳細通俗介紹一下?

隨機數在科學研究與工程實際中有著極其重要的應用!

簡單來說,隨機數就是一個數列,這個數列可能滿足一定的概率分佈,也許其滿足的分佈並不為我們所知。

不知道你是否知道一個經典的例子:“使用一根針和兩條線求圓周率”(如果不知到你可以搜一下)。這個實驗我們可以使用數學模擬(蒙特卡羅模擬)的方法來進行,這樣可以最大限度的節約實驗所消耗的時憨(使用計算機),也在一定程度上剔除了人為因素的影響。但有一個前提必須考慮,就是模擬的隨機性要好。怎樣體現呢,這時就需要使用“好”的隨機數來替代我們的物理實驗。

據我所知,隨機數在科學預測上有著非常重要的應用!還有密碼學中,隨機數也是基礎之一。

數學方法產生隨機數應該稱之為“偽隨機數”,只有使用物理方法才能得到真正的隨機數!

為了得到數學上的偽隨機數,我們就要研究“為隨機數發生器”!

通常,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^6xxxx - 1(具體的忘了)!

什麼是vb的隨機數和種子??

是的,用隨機數的時候要用到randomize(觸這個函數來避免每次生成的數都是一樣的,在vb.net中是直接寫成randomize()的,不用寫number

你下面寫的意思是:

(b-a)*rnd()+a 是a到b區間的數,但是不包含a,b本身;

int((b-a+1)*rnd()+a 是a到b區間的數,但是包含a,b本身的數所以要加上1

一般可以自己寫出生成隨機數的函數來的,就是用線性同餘法來生成隨機數,所以開始定義的一個數來生成的時候,第一個數就叫做種子數了,用它來生成一串隨機數。

隨機種子

偽隨機數是以一個稱為“種子”的數作為初始條件,通過固定的算法產生一個看上去像是隨機產生的數字序列的。

舉例來說,這個算法可以設計成類似於“將給定的種子開平方,取有效數字的第2至9位作為下一次迭代的種子,重複此過程3次後,以結果的第1-4位作為返回值、並將該結果作為下次調用本過程的種子”等等。

然而,無論這個算法如何複雜,只要它固定不變,則對於相同的種子來說,每一次從這個種子開始、第n次通過該算法取得的偽隨機數亥總是一樣的,因此必須再通過各種真正客觀的途徑使得該初始的種子不同。一般來說常用的方式是以運行時候的時鐘時間,經一定變化後作為初始的種子的。

相關問題答案
隨機發生數種子是什麼?
生態種子是什麼意思?
女生賣卵子是什麼意思?
要種子是什麼意思?
續絃生的孩子是什麼?
發生額合計是什麼意思?
隨機應變的拼音是什麼?
發生的意思是什麼?
康乃馨的種子是什麼?
菜豆種子是什麼植物?