什么是伪随机整数?

ipk*_*iss 3 c random

我正在读一本C书.在rand()功能描述中,他们说:

rand返回范围0为的伪随机整数RAND_MAXRAND_MAX是依赖于实现但至少是32767.

我不明白; 什么是"伪随机整数"?

谢谢.

tem*_*def 7

非正式地,伪随机数是不是真正随机的数字,但对于大多数目的而言是"足够随机"的.

计算机本质上是确定性设备.处理器以特定顺序执行特定命令,程序控制处理器如何执行.因此,程序很难生成随机数,因为没有确定性过程可以创建随机数.因此,许多程序所做的是使用伪随机数生成器,该生成器是根据某些确定性公式产生数字的函数,该公式似乎是随机的但实际上不是.大多数编程语言提供某种伪随机数生成器用于一般编程使用,并且当不需要真正的随机性时,它们工作得很好.

但是,它们有其局限性.在加密设置中,例如,在许多情况下,需要真正的随机性以防止攻击者猜测系统的工作并使其受损.在这种情况下,可以通过使用可以放大背景噪声或使用量子效应的专用硬件来获得真正的随机数.然而,这种随机性极难产生,因此除非需要绝对的不可预测性,否则它不常用.

  • 我会添加这个,因为计算机可以生成随机数.计算机不是确定性的,否则他们不会随意破坏:-) http://en.wikipedia.org/wiki/Hardware_random_number_generator (2认同)