-
當前位置:首頁 > 創(chuàng)意學院 > 營銷推廣 > 專題列表 > 正文
偽隨機數(shù)會重復嗎
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于偽隨機數(shù)會重復嗎的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器
問友Ai官網(wǎng):https://ai.de1919.com。
本文目錄:
偽隨機和真隨機區(qū)別
計算機不會產(chǎn)生絕對隨機的隨機數(shù),計算機只能產(chǎn)生“偽隨機數(shù)”。其實絕對隨機的隨機數(shù)只是一種理想的隨機數(shù),即使計算機怎樣發(fā)展,它也不會產(chǎn)生一串絕對隨機的隨機數(shù)。計算機只能生成相對的隨機數(shù),即偽隨機數(shù)。
1、隨機性:完全亂序
2、不可推測性: 從已有的數(shù),無法推測出下一個數(shù);
3、不可重復性: 隨機數(shù)之間不重復
真隨機數(shù)是伴隨著物理實驗的,比如: 拋硬幣、擲骰子、電子元件的噪音、核裂變等,它的結果符合三大特性的
偽隨機數(shù)是通過一定算法,獲得一個隨機的值,并不是真的隨機。偽隨機又分為強偽隨機數(shù)和弱偽隨機數(shù)。強偽隨機數(shù):更加貼近真隨機數(shù),滿足特性的。隨機性和不可推測性,難以預測。弱偽隨機數(shù):滿足隨機性,可以預測。
聽說計算機產(chǎn)生的隨機數(shù)是偽隨機數(shù),公式有誰知道。
用S作隨機模擬計算作為統(tǒng)計工作者,我們除了可以用S迅速實現(xiàn)新的統(tǒng)計方法,還可以用S進行隨機模擬。隨機模擬可以驗證我們的算法、比較不同算法的的優(yōu)缺點、發(fā)現(xiàn)改進統(tǒng)計方法的方向,是進行統(tǒng)計研究的最有力的計算工具之一。
隨機模擬最基本的需要是產(chǎn)生偽隨機數(shù),S中已提供了大多數(shù)常用分布的偽隨機數(shù)函數(shù),可以返回一個偽隨機數(shù)序列向量。這些偽隨機數(shù)函數(shù)以字母r開頭,比如rnorm()是正態(tài)偽隨機數(shù)函數(shù),runif()是均勻分布偽隨機數(shù)函數(shù),其第一個自變量是偽隨機數(shù)序列長度n。關于這些函數(shù)可以參見第14節(jié)以及系統(tǒng)幫助文件。下例產(chǎn)生1000個標準正態(tài)偽隨機數(shù):
>
y
<-
rnorm(1000)
這些偽隨機數(shù)函數(shù)也可以指定與分布有關的參數(shù),比如下例產(chǎn)生1000個均值為150、標準差為100的正態(tài)偽隨機數(shù):
>
y
<-
rnorm(1000,
mean=150,
sd=100)
產(chǎn)生偽隨機數(shù)序列是不重復的,實際上,S在產(chǎn)生偽隨機數(shù)時從一個種子出發(fā),不斷迭代更新種子,所以產(chǎn)生若干隨機數(shù)后內(nèi)部的隨機數(shù)種子就已經(jīng)改變了。有時我們需要模擬結果是可重復的,這只要我們保存當前的隨機數(shù)種子,然后在每次產(chǎn)生偽隨機數(shù)序列之前把隨機數(shù)種子置為保存值即可:
>
the.seed
<-
.Random.seed
>
……………
>
.Random.seed
<-
the.seed
>
y
<-
rnorm(1000)
作為例子,我們來產(chǎn)生服從一個簡單的線性回歸的數(shù)據(jù)。
#
簡單線性回歸的模擬
lm.simu
<-
function(n){
#
先生成自變量。假設自變量x的取值范圍在150到180之間,大致服從正態(tài)分布。
x
<-
rnorm(n,
mean=165,
sd=7.5)
#
再生成模型誤差。假設服從N(0,
1.2)分布
eps
<-
rnorm(n,
0,
1.2)
#
用模型生成因變量
y
<-
0.8
*
x
+
eps
return(data.frame(y,x))
}
S沒有提供多元隨機變量的模擬程序,這里給出一個進行三元正態(tài)隨機變量模擬的例子。假設要三元正態(tài)隨機向量
的
n個獨立觀測,可以先產(chǎn)生n個服從三元標準正態(tài)分布的觀測,放在一個
n行3列的矩陣中:
U
<-
matrix(rnorm(3*n),
ncol=3,
byrow=T)
可以認為矩陣U的每一行是一個標準的三元正態(tài)分布的觀測。設矩陣
的Choleski分解為
,
A為上三角矩陣,若隨機向量
,則
。因此,
作為一個三行
n列的矩陣每一行都是服從
分布的,且各行之間獨立。經(jīng)過轉置,產(chǎn)生的
X
X
<-
matrix(rep(mu,n),
ncol=3,
byrow=T)
+
U
%*%
A
是一個
n行三列的矩陣。
有時模擬需要的計算量很大,多的時候甚至要計算幾天的時間。對于這種問題我們要善于把問題拆分成可以單獨計算的小問題,然后單獨計算每個小問題,把結果保存在S對象中或文本文件中,最后綜合保存的結果得到最終結果。
如果某一個問題需要的計算時間比較長,我們在編程時可以采用以下的技巧:每隔一定時間就顯示一下任務的進度,以免計算已經(jīng)出錯或進入死循環(huán)還不知道;應該把中間結果每隔一段時間就記錄到一個文本文件中(cat()函數(shù)可以帶一個file參數(shù)和append參數(shù),對這種記錄方法提供了支持),如果需要中斷程序,中間結果可能是有用的,有些情況下還可以根據(jù)記錄的中間結果從程序中斷的地方繼續(xù)執(zhí)行。
參考文獻:
http://www.math.pku.edu.cn/teachers/lidf/docs/statsoft/html/s/13.html
rand() 會重復嗎
當然。隨機序列本身就是有重復的,而且這種重復是沒有規(guī)律的。rand()是產(chǎn)生偽隨機數(shù)的函數(shù),所謂“偽隨機”就是假隨機,是說它的序列規(guī)則是可以事先安排的,所以產(chǎn)生的序列可以預測的;但一但生成序列,把這偽序列與真序列比較的話是看不出有什么不同的。所以rand() 如果不重復就不像隨機序列了……以上就是關于偽隨機數(shù)會重復嗎相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀: