首页 > PHP教程 > php开发知识文章

PHP生成任意不重复的随机数

本文主要介绍了PHP生成任意不重复的随机数(基于自增数据),文中给出了详细的示例代码供大家参考学习,

对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

关键点在于生成的自增数据位数控制

位数控制在于两个地方

      1、 $base 基数组 如果是8位这个数组必须是8位

      2、 $i 自增数,自增数不能超过8位数

示例代码:

 

function swap($n, $base)
{
$mask = 19; //1 + 2 + 16
$n = intval($n, 10);
$idx = $n & $mask;//取出标志位
$xor = $base[$idx] ^ $n;//根据标识为找到对应的base,异或n
return (($xor | $mask) ^ $mask) | $idx;//覆盖标识位
}

$newArray = [];
$base = array(
0 => 1918407, 1 => 5529570, 2 => 6527234, 3 => 6550962,
4 => 8054672, 5 => 3141234, 6 => 2125630, 7 => 6978033,
8 => 4623630, 9 => 4736420, 10 => 7767295, 11 => 9679880,
12 => 1665600, 13 => 6044373, 14 => 4661383, 15 => 5771843,
16 => 2206123, 17 => 5685396, 18 => 5571647, 19 => 7178311,
);
for ($i = 0; $i < 1000000; $i++) {
$newArray[] = swap($i, $base) . "/r/n";
}
var_dump($newArray);

总结

以上就是本文PHP生成任意不重复的随机数的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,谢谢大家对本站的支持。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。