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生成静态页面详解
Nov 19 PHP
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 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绘制一条弧线的方法
2015/01/24 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
CCPry JS类库 代码
2009/10/30 Javascript
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
Jquery性能优化详解
2014/05/15 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
Python httplib模块使用实例
2015/04/11 Python
Python中join和split用法实例
2015/04/14 Python
Python版微信红包分配算法
2015/05/04 Python
详解python之简单主机批量管理工具
2017/01/27 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
行政上诉状范文
2015/05/23 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis