引入随机性
回想一下,所有(Q)RNG都是确定性的。你在这里看到的,康拉德会称之为特征。
从文档中:
要更改RNG种子,请使用
arma_rng::set_seed(value)
或
arma_rng::set_seed_random()
功能。
演示
文件的稍微修复版本:
/tmp$ cat armaRand.cpp
#include<armadillo>
int main(){
arma::arma_rng::set_seed_random();
arma::mat(3,3, arma::fill::randu).print();
exit(0);
}
/tmp$ g++ -o armaRand armaRand.cpp
/tmp$ ./armaRand
0.8824 0.4457 0.3589
0.7134 0.4768 0.8335
0.0171 0.4119 0.3720
/tmp$ ./armaRand
0.3417 0.3643 0.6865
0.2814 0.0191 0.6797
0.9737 0.1593 0.5013
/tmp$
如果你愿意
可重复的结果
您希望使用另一个变体并跟踪种子
价值
.
编辑:
2018年底,随着新版本的Armadillo,现在似乎需要链接,所以请进行链接
g++ -o armaRand armaRand.cpp -larmadillo
。其余的仍然保留:by
播种
带有(足够)随机位的随机数生成器我们确实得到了预期的不同答案。