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实现多服务器共享SESSION数据的方法
Mar 16 PHP
Mysql和网页显示乱码解决方法集锦
Mar 27 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
PHP在不同页面间传递Json数据示例代码
Jun 08 PHP
php读取大文件示例分享(文件操作类)
Apr 13 PHP
php获取一个变量的名字的方法
Sep 05 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
Symfony的安装和配置方法
Mar 17 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
PHP新手指南
Apr 01 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
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
javascript import css实例代码
2008/07/18 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
用python实现对比两张图片的不同
2018/02/05 Python
python实现二维插值的三维显示
2018/12/17 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
党员创先争优承诺书
2014/03/26 职场文书
副董事长岗位职责
2014/04/02 职场文书
服装发布会策划方案
2014/05/22 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
湘江北去观后感
2015/06/15 职场文书
家访教师心得体会
2016/01/23 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python