伪随机性

✍ dations ◷ 2025-11-16 19:18:27 #伪随机性,理论计算机科学

伪随机性(英语: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;}

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

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

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

相关

  • 卫生条件卫生设施,是指涉及公共卫生及环境卫生(英语:Environmental health)的设施,包括净化饮用水和对人类粪便进行适当处理和处置,也包括排污(英语:Sewage)。避免人与粪便接触是卫生设施的主
  • 无脑畸形无脑畸形(英语:anencephaly)是胚胎发育期间,出现颅骨缺陷、及脑部发育不全的罕见先天性疾病,其原因是受精后的第23至第26天内神经管出现缺陷,使其延髓末端无法闭合。严格而言,此疾
  • 红毛港红毛港是过去位于高雄市小港区的一个渔村,与盐水港、大林蒲及中洲相接壤。曾经是日本统治时期高雄州乌鱼渔获的主要产地。红毛港又可细分成“埔头仔”、“姓杨仔”、“姓吴仔
  • span class=nowrapCeClsub3/sub/span三氯化铈,别名氯化铈、氯化铈(III),化学式CeCl3。无色易潮解块状结晶或粉末。露置于潮湿空气中时,迅速吸收水分生成组成不定的水合物。易溶于水,可溶于乙醇和丙酮。水合物直接在
  • 中国科学院海洋研究所中国科学院海洋研究所,简称中科院海洋所。是位于中国青岛市的一所科研机构,始建于1950年,主要从事海洋科学相关研究工作。与国内外多所科研院所保持合作关系,经常进行海洋考察作
  • 轻型坦克轻型坦克(简称轻坦)在第二次世界大战时期是指车重在10至20吨和使用轻型火炮的坦克,当时的主要的轻型坦克举例有:在二战后轻型坦克的重量和火力都得到强化甚至直迫以往的中型坦
  • 烯丙醇烯丙醇,丙烯的3位被羟基取代后得到的醇衍生物,即3-丙烯醇,结构为CH2=CH-CH2-OH。广义的烯丙醇泛指带双键的醇,同时双键和羟基的相对位置满足3-丙烯醇的结构。烯丙醇可以使用多种
  • 重启命运《重启命运》(日语:リローデッド)是日本音乐组合自我主张的第6张单曲。2015年11月11日由Sony Music Records发行。《重启命运》是音乐组合自我主张自从上一张单曲《Fallen(日语:F
  • 宫崎勤事件宫崎勤事件发生于1988年-1989年的日本东京都与埼玉县,案中罪犯宫崎勤(1962年8月21日-2008年6月17日)先后绑架、伤害及杀害四名年纪介乎4-7岁的女童。他幻想吃掉女童后会令死去
  • 施蒂克尔格拉本河坐标:49°3′35.44″N 11°2′49.27″E / 49.0598444°N 11.0470194°E / 49.0598444; 11.0470194施蒂克尔格拉本河(德语:Stickelgraben),是德国的河流,位于该国东南部,由巴伐利亚