一般地,伪随机数的生成方法主要有以下3种:

(1) 直接法(Direct Method),根据分布函数的物理意义生成。缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。

(2) 逆转法(Inversion Method),假设U服从[0,1]区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。该方法原理简单、编程方便、适用性广。

(3)接受拒绝法(Acceptance-Rejection Method):假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)≤cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。 伪随机数发生器

因此,伪随机数生成器(PRNG)一般采用逆转法,其基础是均匀分布,均匀分布PRNG的优劣决定了整个随机数体系的优劣[7]。下文研究均匀分布的PRNG。

C语言程序例

下面看这样一个C程序: 伪随机数

这个程序(rand01.c)完整地阐述了随机数产生的过程:

首先,主程序调用random_start方法,random_start方法

movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4);

这个函数用来移动内存数据,其中FP_SEG(far pointer to segment)是取temp数组段地址的函数,FP_OFF(far pointer to offset)是取temp数组相对地址的函数,movedata函数的作用是把位于0040:006CH存储单元中的双字放到数组temp的声明的两个存储单元中。这样可以通过temp数组把0040:006CH处的一个16位的数送给RAND_SEED。 伪随机数理论推导

random用来根据随机种子RAND_SEED的值计算得出随机数,其中这一句:

RAND_SEED=(RAND_SEED*123+59)%65536;

是用来计算随机数的方法,随机数的计算方法在不同的计算机中是不同的,即使在相同的计算机中安装的不同的操作系统中也是不同的。linux和windows下分别试过,相同的随机种子在这两种操作系统中生成的随机数是不同的,这说明它们的计算方法不同。

明白随机种子是从哪儿获得的,而且知道随机数是怎样通过随机种子计算出来的了。那么,随机种子为什么要在内存的0040:006CH处取。0040:006CH处存放的是什么。

相关查询: 伪随机
最新查询:忧国忧民 古伦美亚 淘宝浏览器 ţ 三庆班 古生物学 11590.5 天下事 维修保养 萝卜竹笙汤 Valentia Tetradacus 摄影师 东山歌册 周播制 声泪俱下 cholinesterase 乾道元宝 安偌莎 黑色瘟疫之青丝长袍 悲惨世界 海地维和日记 藏医科 陶瓷业 征服人猿世界 鹿狗 Madlib 老子儿子弦子 科搜研之女第11季 纵贯公路 两广总督 细密画 Antwerp lycopene biology Nittelligenic 谭江柏 皮皮鬼 几何体 美中经济贸易促进会 Kurosawa violuric ؼӹ ΰ 佛蒙特州 格拉玛 niigata 黑压压 Emphasis صDZ 穿越之恶魔盟主的淘气郡主 小宇同学就是我 江崎玲于奈 Alain-Michel ׿ Chiriqui 南苑乡 傅立叶 朱寨镇 连城璧 碗墓 齐默尔曼 大同与小康 orbital Janchen 测绘学 小白菜炖豆腐 美容师 Bizarre 政策性 彰化县 风景秀丽 登高望远 七弦琴 %E8%8A%9D%E5%8A%A0%E5%93%A5%E5%B7%A5%E4%BA%BA%E5%A4%A7%E7%BD%A2%E5%B7%A5 星岛日报 马尼拉 加贺真理子 北港溪 伪随机
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 豫ICP备14030218号-3 消耗时间:0.049秒 内存2.83MB