伪随机数和真随机数是随机性概念的两种不同表现方式,它们在计算机科学、密码学和统计学等领域中具有重要意义。
伪随机数(Pseudo-Random Number):
伪随机数是通过确定性算法生成的数列,看起来像是随机的,但实际上是根据初始值(种子)经过数学运算得到的。尽管伪随机数生成算法的输出序列在某些方面表现得像随机数,但在理论上是可预测的。如果使用相同的初始种子,伪随机数生成算法会产生相同的数列。
在大多数情况下,伪随机数足够满足随机性的需求,例如在模拟、计算机图形、随机算法等应用中。常见的伪随机数生成算法包括线性同余生成器、梅森旋转算法等。
真随机数(True Random Number):
真随机数是从物理过程中获得的随机性数据。它们不是通过算法生成的,而是基于随机事件,如热噪声、放射性衰变、光子计数等,产生的数字。真随机数在理论上是不可预测的,因为它们源自不可预测的自然现象。
由于真随机数是从物理事件中获取的,所以在一些需要高度随机性和安全性的应用中,如密码学中的加密密钥生成,需要使用真随机数来避免伪随机数可能存在的可预测性问题。
总结来说,伪随机数是通过算法生成的,表现得像随机数,但实际上是可预测的。真随机数是从物理过程中获得的,具有更高的随机性和不可预测性。在大多数情况下,伪随机数已经足够满足需求,但在需要高度随机性和安全性的场景中,真随机数更为合适。