1
我在我的代碼中有一個函數,它使用種子來獲得可預測的(基於種子)隨機數集。mt_srand()和srand() - 是否需要將種子重置爲隨機數?
$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()重置回它隨機種子一旦我用它做?
爲什麼你的函數調用'mt_srand()'?我很好奇,如果有可能有更好的方式來完成事情。 – duskwuff
@duskwuff這是一個很好的問題。例如,我想爲給定用戶生成相同的一組隨機數(但對於不同的用戶仍然是隨機的/不同的)。所以在這種情況下,他們可以使用user_id作爲種子。 –
像,你只需要一些與用戶相關的隨機數字?如果是這樣的話(你可以使用'$ salt'作爲一個固定值來獲得這組數字),你可能想考慮一下'unpack(「LLLL」,sha1($ salt。$ user_id))'。 – duskwuff