PHP生成任意不重复的随机数
2018-02-16 21:36:56
•
阅读
打赏
本文主要介绍了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生成任意不重复的随机数的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,谢谢大家对本站的支持。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型