freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-大隨機(jī)數(shù)生成器算法的研究與實(shí)現(xiàn)—論文-文庫吧

2024-11-11 19:31 本頁面


【正文】 代式的系數(shù)為 : 1 ) lamda=5^5,M=2^3531 2 ) lamda=7^5,M=2^311 混同于法 混合同余法是加同余法和乘同余法的混合形式 , 其迭代式如 下 : Xn+1=( Lamda*Xn+C )%M Rn+1=Xn/M 經(jīng)前人研究表明,在 M=2^q 的條件下,參數(shù) lamda,miu,X0 按如下選取,周期較大,概率統(tǒng)計(jì)特性好 : Lamda=2^b+1,b 取 q/2 附近的數(shù) Confidential PagePage 3 of 50 3 1/7/2021 C=(1/2+sqrt(3))/M X0 為任意非負(fù)整數(shù) 它的一個致命的弱點(diǎn),那就是隨機(jī)數(shù)的生成在某一周期內(nèi)成線性增長的趨勢,顯然,在大多數(shù)場合,這種極富 “ 規(guī)律 ” 型的隨機(jī)數(shù)是不應(yīng)當(dāng)使用的。 實(shí)現(xiàn) : 1 double _random( void ) 2 { 3 int a。 4 double r。 5 6 a = rand() % 32767 。 7 r = (a + ) / 。 8 9 return r。 10 11 } 反變換法 它首先需要使用均勻分布獲得一個 (0,1) 間隨機(jī)數(shù) , 這個隨機(jī)數(shù)相當(dāng)于原概率分布的 Y 值 , 因?yàn)槲覀儸F(xiàn)在是反過來求 X. 哎 , 聽糊涂了也沒關(guān)系 , 只要知道算法怎么執(zhí)行的就行 . 采用概率積分變換原理 , 對于隨機(jī)變量 X 的分布函數(shù) F(X) 可以求其反函數(shù),得 : 原來我們一般面對的是概率公式 Y=f(X). 現(xiàn)在反過來 , 由已知的概率分布或通過其參數(shù)信息來反求 X. Xi=G(Ri) 其中 ,Ri 為一個 01 區(qū)間內(nèi)的均勻分布的隨機(jī)變量 . F(X) 較簡單時,求解 較易,當(dāng) F(X) 較復(fù)雜時,需要用到較為復(fù)雜的變換技巧。 平均分布 : 已知隨機(jī)變量密度函數(shù)為 : Confidential PagePage 4 of 50 4 1/7/2021 指數(shù)分布 : 指數(shù)分布的分布函數(shù)為 : x0 時 ,F(x)=0 。 x=0,F(x)=1exp(lamda*x) 利用反函數(shù)法,可以求得 : x=lnR/lamda( 怎么來的別問 ) 正態(tài)分布隨機(jī)變量的生成 : 正態(tài)分布在概率統(tǒng)計(jì)的理論及應(yīng)用中占有重要地位,因此,能產(chǎn)生符合正態(tài)分布的隨機(jī)變量就在模擬一類的工作中占有相當(dāng)重要的地位。 下面介紹兩種方法。 經(jīng)過一定的計(jì)算變行,符合二維的正態(tài)分布的隨機(jī)變量的生成可按下面的方法進(jìn)行: 1) 產(chǎn)生位于 01 區(qū)間上的兩個隨機(jī)數(shù) r1 和 r2. 2) 計(jì)算 u=2*r11,v=2*r21 及 w=u^2+v^2 3) 若 w1 , 則返回 1) 4) x=u[(lnw)/w]^(1/2) ( 怎么來的別問 ) y=v[(lnw)/w]^(1/2) 如果為 (miu,sigma^2) 正 態(tài)分 布 , 則 按上 述方 法 產(chǎn)生 x 后, x’=miu+sigma*x 由于采用基于乘同余法生成的 01 上的隨機(jī)數(shù)的正態(tài)分布隨機(jī)數(shù)始終無法能過正態(tài)分布總體均值的假設(shè)檢驗(yàn)。而采用 C 語言的庫函數(shù)中的隨機(jī)數(shù)生成函數(shù) rand() 來產(chǎn)生 01 上的隨機(jī)數(shù),效果較為理想。 離散型隨機(jī)變量 基本的思想是這樣的: 1 )在泊松分布中,求出 X 取何值時, p(X=k) 取最大值時,設(shè)為 Pxmax. 其時,這樣當(dāng)于求解 f(x)=lamda^k/k! 在 k 取何值時有最大值,雖然,這道題有一定的難度,但在程序中可以能過一個循環(huán)來得到取得 f(x) 取最大值時的整數(shù)自變量 Xmax 。 2) 通過迭代,不斷生成 01 區(qū)間上的隨機(jī)數(shù),當(dāng)隨機(jī)數(shù) Pxmax 時,則終止迭代,否則重復(fù) (2) Confidential PagePage 5 of 50 5 1/7/2021 3) 記錄迭代過程的次數(shù),即為所需要得到的符何泊松分布的隨機(jī)量。 顯然,這種方法較為粗糙,在試驗(yàn)的過程中發(fā)現(xiàn):生成 的的隨機(jī)量只能算是近似的服從泊松分布,所以,更為有效的算法還有待嘗試。 實(shí)現(xiàn) : 采用 double 至少可以支持 lamda=700 ,即 exp(700)!=0 1 const int MAX_VAL = 10000 。 2 double U_Rand( double a, double b ) // 均勻分布 3 { 4 double x = random( MAX_VAL )。 5 return a + (b a) * x / (MAX_VAL 1 )。 6 } 7 double P_Rand( double Lamda ) // 泊松分布 8 { 9 double x = 0 ,b = 1 ,c = exp( Lamda ),u。 10 do { 11 u = U_Rand( 0 , 1 )。 12 b *= u。 13 if ( b = c ) 14 x ++ 。 15 } while ( b = c )。 16 return x。 17 } 為防止 lamda 過大而溢出 ,故應(yīng)該自己來寫 一個浮點(diǎn)類 3 隨機(jī)數(shù)的檢驗(yàn) 隨機(jī)數(shù)的統(tǒng)計(jì)檢驗(yàn),就是根據(jù)( 0, 1)上均勻總體簡單子樣式的性質(zhì)來研究所產(chǎn)生的隨機(jī)數(shù)序列的相應(yīng)性質(zhì),進(jìn)行比較鑒別,視其差異顯著與否,決定取舍。如果所產(chǎn)生的偽隨機(jī)數(shù)經(jīng)過各類檢驗(yàn),其差異均不顯著,我們即接受其為均勻總體隨機(jī)數(shù)的子樣。 需要指出的是,若所產(chǎn)生的偽隨機(jī)數(shù)序列通過某種隨機(jī)性檢驗(yàn),只是說它與隨機(jī)數(shù)的性質(zhì)和規(guī)律不矛盾,我們不能扛絕它,并不是說它們已經(jīng)具有隨機(jī)數(shù)的性質(zhì)與規(guī)律。因此檢驗(yàn)所產(chǎn)生的偽隨機(jī)數(shù)序列時,所通過的檢驗(yàn)越多,隨機(jī)數(shù)序列就越靠得住。隨機(jī)數(shù)的檢驗(yàn)方法有: 參數(shù)檢驗(yàn),檢驗(yàn)其 分布參數(shù)的觀察值與理論值的差異顯著性。 均勻性檢驗(yàn),又稱頻率檢驗(yàn),意在檢驗(yàn)偽隨機(jī)數(shù)的經(jīng)驗(yàn)頻率與理論頻率的差Confidential PagePage 6 of 50 6 1/7/2021 異是否顯著。 獨(dú)立性檢驗(yàn),即檢驗(yàn)所產(chǎn)生的偽隨機(jī)數(shù)的獨(dú)立性和統(tǒng)計(jì)相關(guān)是否異常,包括相關(guān)關(guān)系檢驗(yàn)和聯(lián)列表檢驗(yàn)等。 組合規(guī)律檢測,按隨機(jī)數(shù)出現(xiàn)的先后次序,根據(jù)一定的規(guī)律組合,檢驗(yàn)其組合的觀察值與理值是不否有顯著差異,包括距離檢驗(yàn)和配套檢驗(yàn)等。 游程檢驗(yàn),把隨機(jī)數(shù)序列按一定的規(guī)則進(jìn)行分類,分為正負(fù)游程檢驗(yàn)和升降游程檢驗(yàn)等。 4 大隨機(jī)數(shù)產(chǎn)生的機(jī)理 流程圖 圖 1 1024 位隨機(jī)數(shù)產(chǎn)生原理圖 偽隨機(jī)數(shù) 產(chǎn)生器 的 產(chǎn)生過程 : 輸入 : 輸入為兩個 64 比特的偽隨機(jī)數(shù) DTi 和 Vi,其中 DTi 表示當(dāng)前的日期和時間 ,每產(chǎn)生一個數(shù) Ri 后, DTi 都更新一次; Vi 是產(chǎn)生第 i 個隨機(jī)數(shù)時的種子,其初值可任意設(shè)定,以后每次自動更新。 密鑰 : 產(chǎn)生器用了 3 次三重 DES 加密, 3 次加密使用相同的兩個 56 比特的密鑰 K1 和 K2,這兩個密鑰必須保密且不能用作他用。 輸出 : 輸出為一個 64 比特的偽隨機(jī)數(shù) Ri 和一個 64 比特的新種子 Vi+1 Step_1: 使用兩個 56 比特的密鑰 K1 和 K2,對偽隨機(jī)數(shù) DTi 進(jìn)行一次三重DES 加密 (EDE),得到 Result_1。 step_2: 任意設(shè)置一個值為 Vi 的初值 ,將 Vi 和 Result_1 進(jìn)行異或 ,得到Confidential PagePage 7 of 50 7 1/7/2021 Result_2。 step_3: 使用密鑰 K1 和 K2 對 Result_2 進(jìn)行一次三重 DES 加密 (EDE),得到一個 64bit 的 Ri 和 Result_3。 (公式 1) (說明 : EDE 表示兩個密鑰的三重 DES) step_4: 異或 Result_1 和 Result_3,得到 Result_4。 step_5: 使用密鑰 K1和 K2 對 Result_4 進(jìn)行一次三重 DES 加密 (EDE),得到Result_5,即得到一個 64bit 的新種子 V(i+1). (公式 2) (說明 : EDE 表示兩個密鑰的三重 DES) step_6: V(i+1)將作為下一輪的輸入 Vi,再次循環(huán)完成 step_1 到 step_5 的過程 ,直到完成 16 輪迭代加密 . 本方案具有非常高的密碼強(qiáng)度,這是因?yàn)椴捎昧?112 比特長的密鑰和 9 個DES 加密,同時還由于算法由兩個偽隨機(jī)數(shù)輸入驅(qū)動,一個是當(dāng)前的日期和時間,另一個是算法上次產(chǎn)生的新種子。而且即使某次產(chǎn)生的隨機(jī)數(shù) Ri 泄露了,但由于 Ri又經(jīng)一次 EDE加密才產(chǎn)生新種子 Vi+1,所以別人即使得到 Ri也得不到 Vi+1,從而得不 到新隨機(jī)數(shù) Ri+1。 隨機(jī)數(shù)產(chǎn)生為 1024 位,即 16 組 64位 2進(jìn)制數(shù),且有最高為(第 1024 位 2進(jìn)制數(shù))為 1,所以該隨機(jī)數(shù)高位在( 16進(jìn)制) 10000000 與 FFFFFFFF 之間。 DES 算法簡介 自 DES 算法 1977 年公諸于世以來,人們一直對 DES 的安全性持懷疑態(tài)度,對密鑰的長度、迭代次數(shù)及 S盒的設(shè)計(jì)眾說紛紜。從技術(shù)上說,對 DES 的批評主要集中在以下 3 個方面:作為區(qū)組密碼, DES 的加密單位僅有 64 位二進(jìn)制,對于數(shù)據(jù)傳輸來說太??;密鑰僅有 56 位二進(jìn)制未免太短,各次迭代中使用的密鑰K(i)是遞推產(chǎn)生的 ,這種相關(guān)性降低了密碼體制的安全性;實(shí)現(xiàn)替代函數(shù) Si 所用的 S盒的設(shè)計(jì)原理尚未公開,其中可能留有隱患。 針對以上 DES 的缺陷,人們提出了幾種增強(qiáng) DES 安全性的方法,主要有以下3種: 1) 三重 DES 算法 用 3 個不同密鑰的三重加密,即為: C=Ek3(Dk2(Ek1P)) P=Dk1(Ek2(Dk3C)) 該方法為密碼專家默克爾( Merkle)及赫爾曼( Hellman)推薦。據(jù)稱,目Confidential PagePage 8 of 50 8 1/7/2021 前尚無人找到針對此方案的攻擊方法。 2)具有獨(dú)立子密鑰的 DES 算法 每一輪迭代都使用一個不同的子密鑰,而不是由一個 56 位二進(jìn)制的密鑰產(chǎn)生。由于 16輪迭代的每輪使用一個 48 位二進(jìn)制的密鑰,所以這一方法可以增強(qiáng)DES 的加密強(qiáng)度。 3)帶有交換 S 盒的 DES 算法 比哈姆和沙米爾證明通過優(yōu)化 S盒的設(shè)計(jì),甚至 S盒本身的順序,可以抵抗差分密碼分析,以達(dá)到進(jìn)一步增強(qiáng) DES 算法的加密強(qiáng)度的目的。 5 算法實(shí)現(xiàn) 函數(shù)名 : get_SystemStatus_W32 函數(shù)功能 : 得到系統(tǒng)狀態(tài) 輸入 : 無 輸出 : 系統(tǒng)狀態(tài)字符串 ,ni:得到的字符串長度 流程圖: 圖 2 得到系統(tǒng)狀態(tài) 的方法示意 圖 buf: 用以保存系統(tǒng)狀態(tài)字符中, maxlen:字符串長度 int CCreRndNum::get_SystemStatus_W32(int maxlen) { int ni = 0。 //保存得到的字符串長度 DWORD dwRes。 MEMORYSTATUS ms。 dwRes = GetCurrentProcessId()。 //返回長整型 (DWORD) if (maxlen = sizeof(DWORD)) 進(jìn)程 ID的句柄標(biāo)實(shí)符 線程的句柄標(biāo)實(shí)符 CPU 脈沖值 內(nèi)存狀態(tài)字 凡是長度大于 maxlen ,ni 等于 ni加上其長度,返回 ni Confidential PagePage 9 of 50 9 1/7/2021 { memcpy(amp。buf[ni], amp。dwRes, sizeof(dwRes))。 ni += sizeof(dwRes)。 maxlen = sizeof(dwRes)。 } dwRes = GetCurrentThreadId(
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1