博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
随机生成防猜不重复的16位纯数字序列号【快速且高性能】
阅读量:5840 次
发布时间:2019-06-18

本文共 812 字,大约阅读时间需要 2 分钟。

  hot3.png

16位纯数字,组合起来是多少个呢?很难一口说出准确数字。

2位纯数字,组合起来是多少个呢?

10*10 = 100个

3位纯数字,组合起来是多少个呢?

10*10*10 = 1000个

因为每个数字都是0-9,一共10个。

以此类推,16位纯数字,一共 10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10种可能。

虽然数目很大,但是也是有限范围内的,在里面搞随机的话,有限范围内取出一定数目的数字,客观上肯定会重复,只不过是想办法达到避免重复的概率而已!

那么换个思路呢?

如果以时间的维度来计算怎么样?那么时间永远是无限往前跑的,这样就永远不可能重复啦!!!

但是同一时间不同ip客户端生成的,时间也是浮云,那么我们解决不同客户端同一时刻生成也不一样,才是王道!

$begin = microtime(true);$generateNum = 500000;//(默认50万条,我机器只需2秒钟!!!经过5000万测试数据,测试24小时,都OK!)$result = array();$num = 0;while($num < $generateNum){	$result[] = substr(uniqid('', true), 15).substr(microtime(), 2, 8);	$num++;}var_dump(microtime(true)-$begin);if($result === array_unique($result)){	echo 'OK!';//数据没有重复,可以使用}else{	echo 'Fuck,Repeat!';//有重复数据,数据不能使用!}//http://my.oschina.net/cart/unset($result);exit();

转载于:https://my.oschina.net/cart/blog/169301

你可能感兴趣的文章
mysql遇见error,1049
查看>>
NYOJ311 完全背包
查看>>
codevs——2822 爱在心中
查看>>
Python基础班---第一部分(基础)---Python基础知识---认识Python
查看>>
JAVA MAC 配置
查看>>
1134 最长上升子序列 (序列型 DP)
查看>>
js冒泡排序
查看>>
第一次作业 4班卢炳武
查看>>
抽象类的调用
查看>>
使用硬盘,安装双系统,Win7+CentOS
查看>>
Javascript学习总结
查看>>
php 用正则替换中文字符一系列问题解决
查看>>
ActiveMQ应用笔记一:基本概念&安装
查看>>
大话数据结构之四(串)
查看>>
加热炉简是新来的整个系统的板
查看>>
Mockito使用注意事项
查看>>
[LeetCode] Palindrome Linked List 回文链表
查看>>
UVA - 825Walking on the Safe Side(dp)
查看>>
android大概是通过logcat拦截Log
查看>>
关于codeMirror插件使用的一个坑
查看>>