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 pack与unpack 摸板字符字符含义
Oct 29 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP消息队列用法实例分析
Feb 12 PHP
功能强大的PHP发邮件类
Aug 29 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
yii插入数据库防并发的简单代码
May 27 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 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
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
详解微信小程序调用支付接口支付
2019/04/28 Javascript
浅析Python中的for 循环
2016/06/09 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
python SVM 线性分类模型的实现
2019/07/19 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
机械电子工程毕业生自荐信
2013/11/23 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
小学班主任评语大全
2014/04/23 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
委托收款证明
2015/06/23 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers