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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

c语言10以内随机数生成器,C语言随机数生成器

發(fā)布時(shí)間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言10以内随机数生成器,C语言随机数生成器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目前所看到的所有公開的關(guān)于C隨機(jī)數(shù)生成器的中文資料,都提到經(jīng)典的線性同余法( LCG, linear congruential generator),并認(rèn)為是默認(rèn)的實(shí)現(xiàn)方法。這個(gè)說法并不準(zhǔn)確。

線性累加反饋法

線性累加反饋法,即LAFM(linear additive feedback method),以下是GLIBC使用的線性累加反饋法的流程描述。其中,2147483647 = 2^31 – 1,4294967296 = 2^32. 所有變量都是整數(shù)。

GLIBC的實(shí)現(xiàn)

GLIBC實(shí)現(xiàn)了以上兩種算法。LAFM生成器標(biāo)記為 TYPE1, TYPE2, TYPE_3 和 TYPE4 類型,LCG 生成器標(biāo)記為 TYPE0。相比LCG,LAFM生成器預(yù)先生成有很多初始狀態(tài),消除了LCG生成器的周期性遍歷的屬性,在同一個(gè)周期內(nèi),可以多次獲取到相同的隨機(jī)數(shù)。為了提高隨機(jī)數(shù)生成的時(shí)間和空間效率,在計(jì)算偽隨機(jī)序列時(shí)GLIBC使用指針指向包含前驅(qū)隨機(jī)值的數(shù)組,寫法與按上述公式步驟直譯的方式有所不同。

LCG生成器狀態(tài)數(shù)組

LCG生成器在狀態(tài)數(shù)組(buf->state)長度為8字節(jié)時(shí)才會(huì)使用。 狀態(tài)數(shù)組長度更大時(shí)則會(huì)啟用LAFM生成器。通常在使用rand()方法時(shí),會(huì)使用srand()設(shè)置種子常量,這時(shí)狀態(tài)數(shù)組默認(rèn)就是128字節(jié), 所以實(shí)際會(huì)啟用LAFM生成器。

線性同余法

由于LCG計(jì)算簡單,極省內(nèi)存,很適合內(nèi)存和計(jì)算資源比較緊張的嵌入式環(huán)境。但LCG有一個(gè)嚴(yán)重的缺陷,即產(chǎn)生的偽隨機(jī)數(shù)強(qiáng)依賴于上一次生成的隨機(jī)數(shù),且重復(fù)周期等于隨機(jī)范圍,不能用于隨機(jī)數(shù)要求高的場(chǎng)合。

總結(jié)

以上是生活随笔為你收集整理的c语言10以内随机数生成器,C语言随机数生成器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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