日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

线性同余法[纯理论]

發(fā)布時(shí)間:2024/8/1 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性同余法[纯理论] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

現(xiàn)在的隨機(jī)函數(shù)發(fā)生器大都采用的是線性同余法。

?

同余的概念是這樣描述的:

設(shè)m是一個(gè)給定的正整數(shù),如果兩個(gè)整數(shù)a,b用m除,所得的余數(shù)相同,則稱a,b對(duì)模m同余。

所謂線性同余法(又叫混合同余法),就是這樣的一個(gè)公式:X[i+1]=(A*X[i]+C) mod M;

經(jīng)前人研究表明,在M=2^q的條件下,參數(shù)A,C,X[0]按如下選取,周期較大,概率統(tǒng)計(jì)特性好:

A=2^b+1=2^(log2(M)/2)+1=2^log2(sqrt(M))+1=sqrt(M)+1;b取q/2 附近的數(shù)

C=(1/2+sqrt(3))*M

X[0]為任意非負(fù)數(shù)

M , 模數(shù)???????? 0 < M
A, 乘數(shù)???????? 0 <= A<M
C, 增量???????? 0 <=C<M
Xi,開始值??????? 0<=Xi<M

它的一個(gè)致命的弱點(diǎn),那就是隨機(jī)數(shù)的生成在某一周期內(nèi)成線性增長(zhǎng)的趨勢(shì),顯然,在大多數(shù)場(chǎng)合,這種極富“規(guī)律”型的隨機(jī)數(shù)是不應(yīng)當(dāng)使用的。

?

同余序列總是進(jìn)入一個(gè)循環(huán),這是一個(gè)事實(shí),它最終必定在N個(gè)數(shù)之間無(wú)休止的重復(fù)循環(huán)。
使用該方法產(chǎn)生的偽隨機(jī)數(shù)能不能近似真正的隨機(jī)效果,跟四個(gè)整數(shù)的設(shè)置相關(guān):
1.???????? 序列的開始值,一般取正整數(shù)。
2.???????? m:一個(gè)同余序列的周期不可能多于m個(gè)元素,所以,為了達(dá)到預(yù)期的隨機(jī)效果,一般我們希望這個(gè)值稍稍大一點(diǎn)。在大多數(shù)情況下,當(dāng)m = 2e(e表示計(jì)算機(jī)的字大小)時(shí),在計(jì)算機(jī)中得到的隨機(jī)效果就比較令人滿意了。而且這樣對(duì)于隨機(jī)數(shù)生成速度也是比較合理的。
3.???????? a:當(dāng)a=1的時(shí)候,Xn=(X0+nc)mod m ,它不具有隨機(jī)序列的特性;而當(dāng)a=0的時(shí)候甚至更糟糕。因此,為實(shí)用起見,選擇2 <= a<m比較合理。
4.???????? c:當(dāng)c=0時(shí),數(shù)的生成過(guò)程比c!=0的時(shí)候要稍微快些,它的限制縮短了這個(gè)序列的周期長(zhǎng)度,但是也仍然有可能得到一個(gè)相當(dāng)長(zhǎng)的周期。當(dāng)c=0時(shí)被稱為乘同余法,c!=0稱為混合同余法。為了一般性,我建議選擇采用混合同余法。
由m,a,c和X0所定義的線形同余序列得到最大的周期長(zhǎng)度m的條件如下:
當(dāng)且僅當(dāng)

(1)c與m互素。
(2)對(duì)于整除m的每個(gè)素?cái)?shù)p,2^b=a-1是p的倍數(shù)。
(3)如果m是4的倍數(shù),則b也是4的倍數(shù)。
就像開始提到的,偽隨機(jī)數(shù)的產(chǎn)生都是由一個(gè)起始種子數(shù)開始的,上面描述的就是由一個(gè)種子數(shù)下能夠產(chǎn)生的隨機(jī)數(shù)的序列。這個(gè)序列的周期性是必然的,當(dāng)這個(gè)周期能夠滿足預(yù)期的效果的時(shí)候,就是我們看到的滿意的隨機(jī)效果。
在確定初始種子數(shù)的時(shí)候,可以有多種形式,例如將某時(shí)刻的時(shí)鐘數(shù)據(jù)做種子,通過(guò)時(shí)間的不停變化,進(jìn)行隨機(jī)數(shù)的求取來(lái)達(dá)到隨機(jī)效果。這些都是方法問題了,不在算法討論范疇。

總結(jié)

以上是生活随笔為你收集整理的线性同余法[纯理论]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。