伪随机性

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

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

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

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

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

相关

  • 头部穿孔头部穿孔(Trepanation),又称颅骨穿孔术或环锯术,是一种外科手术干预法,在头皮与头盖骨上钻或挖一个孔,令到头颅的硬膜外露,以处理颅内疾病或其他相关的健康问题。人们相信这种方法
  • 博洛尼亚博洛尼亚(意大利语:Bologna)是一座意大利城市,位于北部波河与亚平宁山脉之间,也是艾米利亚-罗马涅的首府。博洛尼亚也是意大利最发达的城市之一。博洛尼亚拥有世界最古老的大学—
  • 澳门基金会澳门基金会(葡萄牙语:Fundação Macau;英文:Macao Foundation),为澳门具有公权力的半官方法人机构,2001年因为区华利基金会利益输送事件,时任行政长官何厚铧下令原澳门基金会和澳门
  • 民用航空民用航空(简称民航)是指军事、公务(例如警务、海关)用途以外的航空服务,包括私人或商业性质的飞行。又可分为公共航空运输、通用航空。世界上大多数国家都是国际民航组织(ICAO)成员
  • 慢性甲状腺炎桥本氏甲状腺炎也称慢性淋巴细胞性甲状腺炎(chronic lymphocytic thyroiditis)、桥本氏症(Hashimoto's disease)是一种由甲状腺被一系列细胞或抗体介导免疫过程攻击所导致的自体
  • 环氧氯丙烷环氧氯丙烷(epichlorohydrin (ECH))是一个有机氯化合物,也是一个环氧化物。它是一个无色液体,有类似于大蒜的刺激性气味,不溶于水,但可以与大部分极性有机溶剂混溶。环氧氯丙烷活
  • 儒奥莱昂·儒奥(Léon Jouhaux,1879年7月1日-1954年4月28日),法国工会领袖,1951年诺贝尔和平奖获得者。儒奥出身巴黎的一贫困的工人家庭,早年当过童工,中学未能毕业,但他坚持自学,还常去大
  • 1071年
  • 圣克鲁斯加大圣克鲁兹加利福尼亚大学 (英文:University of California, Santa Cruz;缩写:UCSC),简称圣克鲁兹加大,又常被称为加利福尼亚大学圣克鲁兹分校,是十所加利福尼亚大学之一,位于美国加
  • 马欢马欢,字宗道、汝钦,号会稽山樵,浙江会稽(今绍兴)人,是一名穆斯林,通晓阿拉伯语及波斯语。明朝通事(翻译官)、航海家,曾随郑和三次下西洋。为了纪念马欢,南沙群岛中有一岛名为马欢岛。马