伪随机性

✍ dations ◷ 2025-05-17 13:41:47 #伪随机性,理论计算机科学

伪随机性(英语:Pseudorandomness)是一个过程似乎是随机的,但实际上并不是。例如伪随机数是使用一个确定性的算法计算出来的似乎是随机的数序,因此伪随机数实际上并不随机。在计算伪随机数时假如使用的开始值不变的话,那么伪随机数的数序也不变。伪随机数的随机性可以用它的统计特性来衡量,其主要特征是每个数出现的可能性和它出现时与数序中其它数的关系。伪随机数的优点是它的计算比较简单,而且只使用少数数值很难推算出计算它的算法。一般人们使用一个假的随机数,比如电脑上的时间作为计算伪随机数的开始值。

用来计算伪随机数的函数被称为随机函数,使用随机函数产生随机数的算法称为随机数生成器。一些随机函数是周期性的,虽然一般来说使用非周期性的函数要好得多,但周期性的随机函数往往快得多。有些周期函数的系数可以调整,之后它们的周期非常大,基本上与非周期的函数效果一样。

/* 使用 ANSI C 可移植算法 */static unsigned long int next = 1;    // 种子int rand(void)                        // 生成伪随机数{    next = next * 1103515245 + 12345;    return (unsigned int) (next / 65536) % 32768;}void srand(unsigned int seed)         // 修改种{    next = seed;}

可见,伪随机数是由一套产生随机数的算法实现的。

在电脑模拟中伪随机数用来模拟产生随机的过程,背景噪声产生器中也可应用伪随机数。由于伪随机数不是真的随机数,在有些方面它们不能被使用,例如在密码学中使用伪随机数要小心,因为其可计算性是一个可以攻击的地方。统计学、蒙特·卡罗方法上使用的伪随机数也必须挑选周期极长、随机性够高的随机函数,以确保计算结果有足够的随机性。

伪随机数的一个特别大的优点是它们的计算不需要外部的特殊硬件的支持,因此在计算机科学中伪随机数依然被使用。真正的随机数必须使用专门的设备,比如热噪信号、量子力学的效应、放射性元素的衰退辐射,或使用无法预测的现象,譬如用户按键盘的位置与速度、用户运动鼠标的路径坐标等来产生。对于移动式计算,采用加速度传感器协助随机数生成亦是一种普遍做法。

相关

  • 猪繁殖和呼吸障碍综合征猪繁殖和呼吸障碍综合征(英语:Porcine Reproductive and Respiratory Syndrome,简称PRRS),俗称蓝耳病(英语:Blue Ear Disease),可导致母猪出现繁殖障碍及仔猪出现严重呼吸道疾病。是
  • 法扎特阿里·法扎特(英语:Ali Farzat,阿拉伯语:علي فرزات‎,1951年6月22日-),叙利亚政治漫画家。他在叙利亚、阿拉伯世界以及其他国际的报纸上出版了超过15,000张讽刺画。现任阿拉
  • 鬼笔属鬼笔属(学名:Phallus)属鬼笔目鬼笔科,其中大部分种具有恶臭且有毒,白鬼笔是著名的食用菌,红鬼笔可药用,而近期发现的新种食用菌香鬼笔具有丁香花香气。长裙竹荪和短裙竹荪在目前的
  • span style=color:#fff环太平洋大学联盟/span环太平洋大学协会(Association of Pacific Rim Universities;APRU),或称环太平洋大学联盟,创立于1997年,是由环太平洋地区各国一流的研究型大学所组成的联盟。联盟的宗旨是“发展(
  • ATC代码 (QJ51)A·B·C·D·G·H·QI·J·L·M·N·P·R·S·VATCvet代码QJ51(用于乳房内的抗分支杆菌药)是兽用解剖学治疗学及化学分类系统的一个药物分组,这是由世界卫生组织药物统计方法整
  • 漳州 (古代)漳州(闽南语:Chiang-chiu)是中国古代的州,于今日的福建省境内。唐朝垂拱二年(686年)分福州西南境置,《元和郡县志》:漳州“因漳水为名”。设置漳浦、怀恩二县,治所在漳浦县(今福建省云
  • calibrecalibre是一个自由开源的电子书软件套装,可以用来组织、存放、以及管理电子书,支持大多数的电子书格式。同时也支持与许多流行的电子书阅读器进行同步,并可能在DRM的限制下转换
  • 尼古拉·米哈伊洛维奇·德鲁日宁尼古拉·米哈伊洛维奇·德鲁日宁(俄语:Николай Михайлович Дружинин,1886年1月13日-1986年8月8日),苏联马克思主义历史学家。苏联科学院院士。知名于对1
  • 芒齿小檗芒齿小檗(学名:)为小檗科小檗属的植物,为中国的特有植物。分布于中国大陆的贵州、四川、陕西、湖南、湖北等地,生长于海拔500米至2,100米的地区,一般生于山坡杂木林中,目前尚未由人
  • 2016年夏季奥林匹克运动会男子100米仰泳比赛2016年夏季奥林匹克运动会男子100米仰泳比赛为2016年夏季奥林匹克运动会游泳比赛的其中一项竞赛项目,赛事于2016年8月7日至8月8日在奥林匹克水上运动中心中举行。以下是比赛