每次使用RNG时都要种下RNG好主意吗?

jma*_*erx 0 c++ random algorithm

我正在使用Mersenne twister算法来洗牌.每次甲板需要洗牌时,我会用时间(NULL)+ deckCutCardNumber播种它,这是用户选择切割牌组的地方.我是否会获得更好的结果,只有第一手种植它并继续使用相同的种子生成它们或者这种方法更随机?

谢谢

Ker*_* SB 5

只有种子PRNG 一次.生成的序列的统计特性仅在种子之后得到保证.如果每次重新设置,结果序列可能没有任何可预测的统计属性.

例如,考虑一个PRNG,它始终将种子值本身作为序列中的第一个数字返回,但在其范围内是完全一致的.只要您不使用第一个数字,这就构成了一个伟大的PRNG.但是,如果您在每次使用之前重新设置它,比如递增计数器值,则根本没有随机性!