電腦隨機數是如何生成的,電腦如何產生隨機數?

時間 2021-09-10 18:22:30

1樓:

不可能寫出那樣的程式.因為本來就是隨即出的數字.當然不能先知道.我做這麼長時間開發.沒發現能這麼寫過

2樓:匿名使用者

電腦產生的隨機數稱為偽隨機數,是通過演算法模擬的,看上去和隨機數一樣,實際上能算出來的數就是可以預見的數(對你來說不可預見,對電腦則是可預見),不是真正的隨機數。

3樓:匿名使用者

有具體的針對某個軟體嗎?單獨的電腦隨機數產生機制比較多,不知道你具體問什麼

電腦如何產生隨機數?

4樓:南瓜蘋果

電腦產生的隨機數稱為偽隨機數,是通過演算法模擬的,看上去和隨機數一樣,實際上能算出來的數就是可以預見的數(對使用者來說不可預見,對電腦則是可預見),不是真正的隨機數。

從一個大數「種子」開始重複某種迭代計算,通常是加減乘除加求餘,種子可以取系統時間,因為使用者不可能精確到微秒控制程式執行,就基本保證了每次生成數值的順序不同

一般來說如果用數位電路產生的都是偽隨機數,但由於迴圈時間太長可視為隨機數。而現在有用類比電路產生的隨機數,主要原理是將熱噪聲放大,然後編碼。

擴充套件資料

隨機數的作用

隨機數的使用歷史已經有數千年。無論是拋硬幣還是搖色子,目的是讓隨機概率決定結果。電腦中的隨機數生成器的目的也是如此——生成隨機不可**的結果。

加密法要求數字不能被攻擊者猜到,不能多次使用同樣的數字。所以需要一種機制產生攻擊者無法**的數字,這些隨機數對加密法至關重要,無論你是加密檔案還是訪問https協議**,都需要用到隨機數。

根據隨機數的生成原理,我們把電腦隨機數分為兩類:「真」隨機數和偽隨機數。

要生成一個「真」隨機數,電腦會檢測電腦外部發生的某種物理現象。比如說,電腦可以測量某個原子的放射性衰變。根據量子理論,原子衰變是隨機而不可測的,所以這就是宇宙中的「純粹」隨機性。

攻擊者永遠無法**原子衰變的發生時間,也就不可能猜出隨機值。

5樓:匿名使用者

是的,pc都是偽隨機的。

電腦是數字裝置,而且從設計上就被定義為精確,甚至用ecc來校正等等。而理論上的隨機數是不能有任何「偏見」的,這電腦做不到,它需要一個隨機數種子來起始運算,而這種子是要被指定的。但不要期望如此就可以輕易的猜測到中獎號碼:

p此外,話題掰大些,宿命論。其實天底下沒什麼是隨機的。你說感情吧,他是被電子控制著的,而電子有它的特性,由於相互的作用而產生看似複雜的結果,假如還有更細小的剖析,那麼這個理論就繼續延伸到那一層,永無止境。

事物都是按照規律走的,所以聚集起來產生所有結果都是定下的。比如我接受了螢幕上電子的轟擊,刺激了好奇的腦細胞,寫了些文字,按下了確定,這都是註定了的,嘻嘻。

幸福就是肚子不痛。

6樓:匿名使用者

可以用程式:

private sub command1_click()dim flag as boolean

dim r(1000)

dim d as string

randomize '初始化隨

機種子for i = 0 to 10 '出11個100以內的不重複數dor(i) = int(rnd() * (100))flag = true

for j = 0 to (i - 1)

if r(j) = r(i) then

flag = false '如果用過了就退出。

exit for

end if

next j

loop until flag = trued = d + ";" + str(r(i))next i

label1.caption = d 』在label1中顯示出來end sub

7樓:幸巴達

電腦產生的都是二進位制數,沒聽說過偽隨機數,

電腦當然能產生隨機數,在程式中有特殊用途。

電腦隨機數產生的計算具體方法

8樓:59分粑粑

實現的方法和詳細的操作步驟如下:

1、第一步,為main函式指定一個函式,如下圖所示,然後進入下一步。

2、其次,完成上述步驟後,編寫一個for迴圈語句,如下圖所示,然後進入下一步。

3、接著,完成上述步驟後,編寫一個輸出語句和範圍,如下圖所示,然後進入下一步。

4、然後,完成上述步驟後,開始執行並進行測試,如下圖所示,然後進入下一步。

5、隨後,完成上述步驟後,新增一個呼叫數學的函式,如下圖所示,然後進入下一步。

6、最後,完成上述步驟後,就獲得了想要的結果了,如下圖所示。這樣,問題就解決了。

9樓:徒步旅行

1.計算機不會產生絕對隨機的

隨機數,計算機只能產生「偽隨機數」。其實絕對隨機的隨機數只是一種。

2.計算機的偽隨機數是由隨機種子根據一定的計算方法計算出來的數值。所以,只要計算方法一定,隨機種子一定,那麼產生的隨機數就是固定的。

3.只要使用者或第三方不設定隨機種子,那麼在預設情況下隨機種子來自系統時鐘。

電腦中的隨機數是怎麼生成的(硬體方面的原理)

10樓:匿名使用者

偽隨機數的生成方法

一般地,偽隨機數的生成方法主要有以下3種[6]:

(1) 直接法(direct method),根據分佈函式的物理意義生成。缺點是僅適用於某些具有特殊分佈的隨機數,如二項式分佈、泊松分佈。

(2) 逆轉法(inversion method),假設u服從[0,1]區間上的均勻分佈,令x=f-1(u),則x的累計分佈函式(cdf)為f。該方法原理簡單、程式設計方便、適用性廣。

(3)接受拒絕法(acceptance-rejection method):假設希望生成的隨機數的概率密度函式(pdf)為f,則首先找到一個pdf為g的隨機數發生器與常數c,使得f

[偽隨機數發生器]

偽隨機數發生器

(x)≤cg(x),然後根據接收拒絕演算法求解。由於演算法平均運算c次才能得到一個希望生成的隨機數,因此c的取值必須儘可能小。顯然,該演算法的缺點是較難確定g與c。

因此,偽隨機數生成器(prng)一般採用逆轉法,其基礎是均勻分佈,均勻分佈prng的優劣決定了整個隨機數體系的優劣[7]。下文研究均勻分佈的 prng。

隨機數的「廬山真面目」

首先需要宣告的是,計算機不會產生絕對隨機的隨機數,計算機只能產生「偽隨機數」。其實絕對隨機的隨機數只是一種理想的隨機數,即使計算機怎樣發展,它也不會產生一串絕對隨機的隨機數。計算機只能生成相對的隨機數,即偽隨機數。

偽隨機數並不是假隨機數,這裡的「偽」是有規律的意思,就是計算機產生的偽隨機數既是隨機的又是有規律的。怎樣理解呢?產生的偽隨機數有時遵守一定的規律,有時不遵守任何規律;偽隨機數有一部分遵守一定的規律;另一部分不遵守任何規律。

比如「世上沒有兩片形狀完全相同的樹葉」,這正是點到了事物的特性,即隨機性,但是每種樹的葉子都有近似的形狀,這正是事物的共性,即規律性。從這個角度講,你大概就會接受這樣的事實了:計算機只能產生偽隨機數而不能產生絕對隨機的隨機數。

(嚴格地說,這裡的計算機是指由馮諾依曼思想發展起來的電子計算機。而未來的量子計算機有可能產生基於自然規律的不可重現的「真」隨機數)。

計算機中的隨機數是怎樣產生的?

11樓:匿名使用者

樓主您好! 在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。 產生隨機數有多種不同的方法。

這些方法被稱為隨機數發生器。隨機數最重要的特性是它在產生是後面的那個數與前面的那個數毫無關係。 真正的隨機數是使用物理現象產生的:

比如擲錢幣、骰子、轉輪、使用電子元件的噪音、核裂變等等。這樣的隨機數發生器叫做物理性隨機數發生器,它們的缺點是技術要求比較高。 在實際應用中往往使用偽隨機數就足夠了。

這些數列是「似乎」隨機的數,實際上它們是通過一個固定的、可以重複的計算方法產生的。它們不真正地隨機,因為它們實際上是可以計算出來的,但是它們具有類似於隨機數的統計特徵。這樣的發生器叫做偽隨機數發生器。

在真正關鍵性的應用中,比如在密碼術中,人們一般使用真正的隨機數。

電腦是否能產生真隨機數?

12樓:元戎劍

目前由計算機產生的所有所謂的隨機數都是偽隨機數.

採用隨機變化的種子再產生偽隨機數,得到的結果更隨機些,但它還是偽隨機數. 因為如果重複這個過程(給同樣值的種子),得到的結果是重複的(同樣的).

如果不採用隨機變化的種子,單用rand(),它只會產生固定的序列.例如: for(i=0;i<10;i++)printf("%d ",rand()); 每次執行輸出的還是那十個數.

談隨機數的分佈,涉及統計的概念,統計的前提是要有大量的樣品.做到大量樣品的分佈滿足某種分佈(包括均勻分佈或某種譜分佈),演算法上是不困難的.

我們在實驗室裡模擬天然海浪,讓海浪符合設定的頻譜和方向譜,還要滿足波高和週期的時域統計分佈,還有波群統計相似,單靠計算機提供的偽隨機數是不夠的,須要加上自己的演算法,才能同時滿足頻域和時域的要求.

"我只要知道偽隨機數用的是哪種演算法,就能準確的知道下一個數將是什麼",是對的,例如用時間做種子,你只要給入同樣的時間,就能得到同樣的結果.

13樓:陽光上的橋

隨機數是不可能的,都是偽隨機數。

但是隨機數與你說的摩擦、碰撞有關係嗎?

14樓:

計算機可以生成真隨機數,這是由於其在進行硬體驅動時,不可避免的受到不確定因素的影響而產生隨機性,例如計算機至少需要顯示驅動和發聲驅動吧,體現在計算機程式語言上就是涉及顯示卡驅動和音效卡驅動的程式設計函式有的執行時間是隨機的,即使你連續呼叫這些函式執行時間也是變化的,利用這些就可以生成真隨機數了。其它方法也不少就不多說了。

計算機是怎麼產生隨機數的?

15樓:匿名使用者

rnd函式實際上一個bai一個的返回已經du定zhi義好的數列中的項dao。執行

回rnd之前,必須執行randomize才有意義。

答否則每次都會從第一項開始返回那個vb定義好的「隨機」數列。

比如,如果你不初始化(randomize)隨機數,每次新執行程式後,使用rnd就會返回如下數列:

.7055475

.533424

.5795186

.2895625

.301948

.7747401

1.401764e-02

.7607236

.81449

.7090379

……randomize的原理就是,利用當前時間(timer屬性)作為「種子」(為初始值,用來生成偽隨機數字。例如, randomize 語句建立一種子值供 rnd 函式使用,以接著建立唯一偽隨機數列。),初始化rnd函式所使用的那個數列,才能真正意義上產生隨機數。

如何讓excel生成隨機數,excel怎麼在某一範圍內生成隨機數?

千秋遐想 excel隨機數函式 洋老師辦公教程 首先輸入等於randbetween 函式,然後輸入需要生成的欄位,在輸入需要結束的欄位,按回車確定,在填充公式,這樣就能批量生成隨機數字。 公式上有如下兩種 1 rand 無引數。生成0 1間的隨機數。該種操作如果想實現 a,b 之間的隨機數,則使用公...

excel生成隨機數的程式請教,如何讓excel生成隨機數

千秋遐想 excel隨機數函式 你好,你的這個 隨機 確實與眾不同啊,是搞公司 嗎?修改 勉強能夠實現反覆執行巨集,得到同一組隨機數。用法如前。public msg as string sub suiji if msg then dim seed,tmsg,num seed 20110109 ran...

c如何生成10位隨機數,C 中怎麼生成4位隨機數

方法1 public static int getrandom1 int minvalue,int maxvalue,int count array.sort keys,items int result new int count array.copy items,result,count retu...