PHP函数mt_rand()和rand()会在批量生成的时候是会有几率出现重复的随机数。srand()和mt_srand()在PHP4.1开始已经不在显式调用了,在mt_rand和rand的时候会自动生成种子。因为,在批量随机的时候,我们自己显式条用生成种子,就可以避免重复。为什么呢?因为种子不一样了呀。种子为什么不一样了呢?因为他是时间种子。
<?php
//存储生存的随机数
$randArr = array();
//生成十万个吧
for($i=0;$i<100000;$i++){
//生成种子
$date = explode(' ', microtime());
$seed = $date[0];
//种子发生器
mt_srand($seed);
//生成随机数
$randArr[] = mt_rand();
}
?>
随机数生成了。并且不会重复的哦。以时间为种子的好处就是省略了在普通的伪随机数会出现重复的情况时进行do{生成随机数code}while(!isset(新生成的一个随机数))的判断步骤。
时间: 2024-10-25 00:35:48