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输出数组中重名的元素的几种处理方法
Sep 05 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
php从字符串创建函数的方法
Mar 16 PHP
PHP文件读取功能的应用实例
May 08 PHP
php生成数字字母的验证码图片
Jul 14 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
Oct 24 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自动更新新闻DIY
2006/10/09 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
2020/09/22 Javascript
详解JavaScript中的this指向问题
2021/02/05 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
使用python实现接口的方法
2017/07/07 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
日期和时间问题
2015/01/04 面试题
企业内部培训方案
2014/02/04 职场文书
cf战队收人广告词
2014/03/14 职场文书
开学典礼主持词
2014/03/19 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
毕业生个人自荐书
2015/03/05 职场文书
薪资证明范本
2015/06/19 职场文书
《三国志》赏析
2019/08/27 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
写好Python代码的几条重要技巧
2021/05/21 Python
一篇文章学会Vue中间件管道
2021/06/20 Vue.js