rand()似乎不会产生真正的随机数。我有一个简单的程序,通过调用来返回一个6位数的数字:
for i=1:6
r=rand(1,1)
end
所以我昨天跑了4-5次。并保存了输出。今天,我再次打开MATLAB,并再次调用相同的函数4-5次.同样的号码也被归还了。
为什么会发生这种情况?
我应该提供一个随机种子或任何其他解决办法吗?
谢谢你的帮助!
考虑如下代码(Python):
import random
for i in [1, 2, 3, 4]:
random.seed(i)
randNumbers = [random.rand() for i in range(100)] # initialize a list with 100 random numbers
doStuff(randNumbers)
我希望确保不同调用之间的randNumbers有显著的不同。我是否需要确保后续调用之间的种子编号明显不同,或者种子不同就足够了(无论如何)?
致书呆子们:请认识到上面的代码过于简单了
如果你看一下C++11中的随机混洗的规范,你会发现有3个函数。我的问题是:典型的用法和优势是什么:
template< class RandomIt, class URNG >
void shuffle( RandomIt first, RandomIt last, URNG&& g );
对比:
template< class RandomIt >
void random_shuffle( RandomIt first, RandomIt last );
我的意思是,似乎无论URNG是什么(均匀分布),结果都将是相同的(从统计角度来看)。我看到的唯一的