伪随机性

✍ dations ◷ 2025-12-07 19:10:46 #伪随机性,理论计算机科学

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

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

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

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

相关

  • 奎尼丁奎尼丁(Quinidine)是自金鸡纳树皮提炼出来具有治疗疟疾的药物。口服或注射使用。如果没有心电图监视,不宜静脉注射。
  • 胞嘧啶胞嘧啶(英语:cytosine, C),学名为2-羰基-4-氨基嘧啶,是组成DNA的四种基本碱基之一。胞嘧啶核苷、胞嘧啶核苷酸均可作为升高白细胞(白血球)的药物。可由二巯基脲嘧啶、浓氨水和氯乙
  • 美国重建时期美国重建时期(英语:Reconstruction Era)在美国历史上指1865年-1877年,当南方邦联与奴隶制度一并被摧毁时,试图解决南北战争遗留问题的时期。“重建”提出了南方分离各州如何重返联
  • 台北县 (日治时期)たいほくけん台北县(たいほくけん )(1895年-1901年),是台湾日治初期的一个县级行政区划。1895年(明治二十八年)6月28日创立之际,系由清治末期的台北府改制而成,辖区范围涵盖北台湾,约
  • 欧洲蜂鹰欧洲蜂鹰(学名:Pernis apivorus),又名欧洲蜜鹰,是一种蜂鹰,生活在欧洲、西亚和非洲,以食用蜂巢为生。
  • 缺失数据在统计调查的过程中,由于受访者对问题的遗漏、拒绝,或是调查员与调查问卷本身存在的一些疏忽,使得记录经常会出现 缺失数据 (Missing Data) 的问题。但是,几乎所有标准统计方法
  • 安尼巴莱·里科安尼巴莱·里科(意大利语:Annibale Riccò,1844年9月14日-1919年9月23日),意大利天文学家。他出生在意大利米兰市,1868年在意大利摩德纳雷焦艾米利亚大学(英语:University of Modena
  • 毕丹星毕丹星(Pritam Khaira Singh;旁遮普语: ਪ੍ਰੀਤਮ ਸਿੰਘ;1976年8月2日-)是一名新加坡工人党政治家和律师,目前是阿裕尼集选区的议员。
  • 即时差分定位即时差分定位(英语:real-time differential global positioning)是相对定位的其中一种,采用电码之虚拟距离定位并且利用差分方式去消去两个GPS测站间于讯号接收时所产生的大部分
  • 龙池镇 (都江堰市)龙池镇,是中华人民共和国四川省成都市都江堰市下辖的一个乡镇级行政单位。龙池镇下辖以下地区:栗坪社区、南岳社区村、东岳社区村、查关社区村、云华社区村和红色社区村。