mt_srand()和srand() - 是否有必要将种子重置为随机数?

时间:2014-06-06 17:44:42

标签: php c

我的代码中有一个函数,它使用种子来获得可预测的(基于种子)随机数集。

$seed = 1234;
mt_srand($seed);

echo mt_rand(0,10);
echo mt_rand(0,10);
echo mt_rand(0,10);
echo mt_rand(0,10);

是否有必要在我的函数结束时调用mt_srand(),以便在我完成后将其重置为随机种子?

1 个答案:

答案 0 :(得分:4)

是。 mt_rand()的状态是全局的 - 如果您的函数将其设置为固定值,则在函数退出后它将保持该状态。虽然调用mt_srand()并不理想,因为这会破坏试图设置固定种子的任何其他函数,但仍然优选将随机数生成器保持在非随机状态。