日韩欧美国产极速不卡一区,国产手机视频在线观看尤物,国产亚洲欧美日韩蜜芽一区,亚洲精品国产免费,亚洲二区三区无码中文,A大片亚洲AV无码一区二区三区,日韩国语国产无码123

您好,歡迎來到維�(kù)電子市場(chǎng)�(wǎng) 登錄 | 免費(fèi)注冊(cè)

偽隨�(jī)�(shù)�(fā)生器
閱讀�3809�(shí)間:2018-05-17 09:38:39

偽隨�(jī)�(shù)�(fā)生器用于在系�(tǒng)需要隨�(jī)�(shù)的時(shí)候,通過一系列種子值計(jì)算出來的偽隨�(jī)�(shù)。因?yàn)樯梢粋�(gè)真正意義上的“隨�(jī)�(shù)”對(duì)于計(jì)算機(jī)來說是不可能�,偽隨機(jī)�(shù)也只是盡可能地接近其�(yīng)具有的隨�(jī)性,但是�?yàn)橛小胺N子值�,所以偽隨機(jī)�(shù)在一定程度上是可控可�(yù)�(cè)��

目錄

概述

  通過程序得到的隨�(jī)�(shù)無論什么算法都一定是通過遞推公式得到的序�,這本身就違反了隨�(jī)的定�,所以它們都不是真正的隨�(jī)�(shù)。偽隨機(jī)�(shù)中一�(gè)很重要的概念就是“種子�,種子決定了隨機(jī)�(shù)的固定序列,例如�C語言rand函數(shù)得到的序列每次都是相同的,如果想得到不同序列需要調(diào)用srand�(shè)置種子;同理�Java中new Random(1)的構(gòu)造函�(shù)參數(shù)來設(shè)置種��

方法

  取中�
  i、平方取中法
  這�(gè)方法是由馮·諾伊曼�1946年提出的,思想很簡(jiǎn)�
  選擇一�(gè)m位數(shù)Ni作為種子,做平方�(yùn)算(記為Ni+ 1 = (Ni * Ni�...),結(jié)果若不足2m�(gè)位,在前�(bǔ)0。在這�(gè)�(shù)選中間m�(gè)位的�(shù)作為Ni+1。這�(gè)算法明顯又很大弊�,不僅周期短而且分布不均�,比�10000平方取中�(jié)果就一直為00000��
  ii、常�(shù)取中��
  此方法與平方取中法稍有不同,只是把一�(gè)隨機(jī)�(shù)的平方換成了隨機(jī)�(shù)與常�(shù)的乘積(記為Ni+1 = (K * Ni�...),對(duì)于隨�(jī)分布等沒有什么提��
  iii、乘法取中法
  此方法是�(duì)平方取中法的一定優(yōu)�,公式記為Ni+1 = (Ni * Ni-1�...
  同余�
  同余是啥不知道的同學(xué)見我《素性測(cè)試》中的wilson檢測(cè)中有解釋
  同余法是大部分變成語言的RNG所采用的算法,線性同余方程為、Ni+1 = a Ni + C (mod m�,其中a為乘�,C為增量,m為膜。產(chǎn)生的隨機(jī)序列Rn = Ni / m�
  �(dāng) a = 1 并且 C != 0�(shí),此同余法稱為加法同余法
  �(dāng)a != 1 并且 C = 0�(shí),此同余法稱為乘法同余法
  �(dāng)a != 1 并且 C != 0�(shí),此同余法稱為混合同余法
  同余法當(dāng)m越大,Ni的范圍也就越�,隨�(jī)分布的也就越均勻,Rn也就分布的更均勻,所以m取值應(yīng)盡可能的�,充分利用計(jì)算機(jī)字長(zhǎng)。對(duì)于如何獲得滿周期隨機(jī)�(shù)是存在判定定理的,當(dāng)且僅�(dāng)滿足下列條件�(shí),踐行同余法是滿周期��
  1.C與m互質(zhì)
  2.�(duì)于m的每一�(gè)�(zhì)因子p,(a-1)為p的倍數(shù)
  3.若m可被4整除� (a-1)也可�4整除�
  除此之外還有二次同余,三次同余等,原理差不多�
  移位�
  由于�(jì)算機(jī)特有的邏輯移位運(yùn)�,可以對(duì)種子N0左移n位得到M1,右移n位得到M2,將M1與M2做邏輯相加運(yùn)算得到隨�(jī)�(shù)N1�
  公式為Ni+1 = Ni >> n + Ni << n.移位法速度非常�,但�(duì)初始值要求較高,很難得到滿意的隨�(jī)序列�
  梅森旋轉(zhuǎn)算法
  梅森旋轉(zhuǎn)算法是當(dāng)今生成隨�(jī)�(shù)�(zhì)量的算法,如php,python,perl等流行編程語言�(nèi)置的PRNG都是采用該算法實(shí)�(xiàn)�
  下面是來至wiki的介��
  梅森旋轉(zhuǎn)算法(Mersenne twister)是一�(gè)偽隨�(jī)�(shù)生成算法。由松本真和西村拓士�1997年開�(fā),基于有限二�(jìn)制字段上的矩陣線性地�??梢钥焖佼a(chǎn)生高�(zhì)量的偽隨�(jī)�(shù)� 修正了古典隨�(jī)�(shù)�(fā)生算法的很多缺陷�

維庫(kù)電子�,電子知�(shí),一查百��

已收錄詞�156653�(gè)