【发布时间】:2014-10-20 08:33:05
【问题描述】:
在“第 8 讲,白噪声和功率谱密度”的第 3 页上,提到 rand 和 randn 创建伪随机数。如果我错了,请纠正我:随机数序列是对于同一个种子,两个序列永远不会真正精确的序列。
然而,伪随机数是确定性的,即如果从同一个种子生成,两个序列是相同的。
我如何创建随机数而不是伪随机数,因为我的印象是 Matlab 的 rand 和 randn 函数用于生成完全独立的随机数?但是,幻灯片提到它们会创建伪随机数。谷歌搜索创建随机数返回 rand 和 randn() 函数。
区分随机数和伪随机数的原因是我需要比较密码学的性能(A)随机具有白噪声特性和(B)伪随机信号具有白噪声特性。因此,(A)必须不同于(B)。我将不胜感激任何代码以及生成随机数和伪随机数的正确方法。
【问题讨论】:
-
不就是
rand(n)命令比如randomGenerator=rand(2) -
我认为用软件生成实际随机数是不可能的... Matlab 中的伪随机信号发生器将具有白噪声特性,并且大多数统计软件模拟使用伪随机数。所以
rand和randn是在Matlab中生成随机数的正确方法 -
你需要使用“真”RNG vs pseudo RNG,还是pseudo RNG vs quasi-random RNG?
-
我的意思是,那里有一篇学术论文展示了如何在“石头剪刀布”对抗人类时选择获胜策略,展示了即使人类也不是随机数生成器!
-
@SKM 从您发布的文章中可以清楚地看出,您可以不对 TRNG 使用 any 代码。为此,您需要一些专用于该任务的硬件。如果您必须使用软件来完成,那么我认为您最好从random.org 之类的网络服务中获取信息(如下面的答案中所述)