matlab的normrnd函数是否有可能在两台不同的机器上生成相同的随机数集(当没有设置种子时)?
答案 0 :(得分:1)
如果两台发电机都以相同的方式在两台机器上播种(例如,同时启动,并以当前时间播种)。实际上,正如评论中所提到的,Matlab中的播种不是当前时间,如果没有播种,播出也是如此。
将当前的发电机设置保存在s:
中
> s = rng; Call rand to generate a vector of random values:
> x = rand(1,5)
> x =
0.8147 0.9058 0.1270 0.9134 0.6324
通过调用rng恢复原始发电机设置。生成一组新的 随机值并验证x和y是否相等:
> rng(s); y = rand(1,5)
> y =
0.8147 0.9058 0.1270 0.9134 0.6324
Matlab为您提供了选择发电机的可能性。选择一个 伪随机数发生器作为Mersenne Twister,并播种它 每次运行时使用相同的种子,您将获得相同的种子。
如果您希望每次运行时都有不同系列的randm数字,
您可以使用rng('shuffle')
,然后用时钟播种您的发电机
开始时间。