PHP基于自增数据如何生成不重复的随机数示例


Posted in PHP onMay 19, 2017

本文主要介绍了PHP基于自增数据生成不重复的随机数的相关内容,分享出来供大家参考学习,下面多说无益 直接上代码:

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

位数控制在于两个地方

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

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

当前简单分析的结果就是以上。大家如果是全局不重复,还是建议使用uuid之类的比较合适。

示例代码:

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";
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php feof用来识别文件末尾字符的方法
Aug 01 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
php合并数组中相同元素的方法
Nov 13 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 PHP
Yii2设置默认控制器的两种方法
May 19 #PHP
php将html转为图片的实现方法
May 19 #PHP
PHP实现文件上传功能实例代码
May 18 #PHP
php分页查询mysql结果的base64处理方法示例
May 18 #PHP
php数值转换时间及时间转换数值用法示例
May 18 #PHP
yii2 resetful 授权验证详解
May 18 #PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 #PHP
You might like
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
用PHP和ACCESS写聊天室(二)
2006/10/09 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
小程序实现多列选择器
2019/02/15 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
python实现代理服务功能实例
2013/11/15 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
简单了解python模块概念
2018/01/11 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
耐克亚太地区:Nike APAC
2019/12/07 全球购物
联谊活动策划书
2014/01/26 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
基层党组织公开承诺书
2014/03/28 职场文书
白血病捐款倡议书
2014/05/14 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
医院合作意向书范本
2015/05/08 职场文书