| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1767 人关注过本帖
标题:如何自动生成不容易重复的六位数
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用fanjinyu9108在2015-1-10 14:44:40的发言:

我的要求是在一天之内生成大约4000个,最好不重复,因为程序会检测,如果重复,就再生成新的密码,有些浪费资源

如果用过的密码永远不再用,按你每天生成4000条记录来算,151200条记录,最多只能用40天。
每条记录加密码有必要吗。
设计有问题。

坚守VFP最后的阵地
2015-01-10 17:51
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
楼主是一厢情愿
总有一天密码有用完的时候

[ 本帖最后由 sdta 于 2015-1-10 18:14 编辑 ]

坚守VFP最后的阵地
2015-01-10 18:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用sdta在2015-1-10 17:41:30的发言:


只能在这次程序运行期间
0-9组合成任意6位不重复的数据,只有151200条记录。
楼主的要求是,用过的数据不能重复使用。

不重复的6位数表

其实那段代码是通用的,他不管具体的数据,而只认这个不重复的数据集表的记录,每次取一个随机记录号,把这条记录抽出,相当于删除了这条记录。如此每次,抽出的数据就是这个不重复的数据集的一个。

这个不重复的数据集表,可以多次运行使用的,但问题是记录有限,每抽一次就少一条,总会抽完。这要视具体应用而定,当用完了是否可以再从头来过,可以的话就加多句删除这个表文件,会自动从新初始化数据集表。

随机取不重复的数,方法不少,这种方法效率相对较高,不用比对判断。
2015-01-10 20:52
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:3 
取随机数,重复的几率不绝对为0,在严格编程中是禁用的。取 0-9 ,共10个数字,构成 6 位数的全排列。
共:10的6次方个=1000000 个不重复排列(数字间有重复)。(如果,数字间无重复时,是 10*9*8*7*6*5=151200 个)
取这样的排列最可靠。
2015-01-10 23:40
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:3 
以下是引用fanjinyu9108在2015-1-10 14:44:40的发言:

我的要求是在一天之内生成大约4000个,最好不重复,因为程序会检测,如果重复,就再生成新的密码,有些浪费资源

象一楼那样用六个取随机数的函数就更浪费资源了。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-01-11 08:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
我的理解:楼主要求生成的这个数据不能算密码,应该叫做关键字可能更合适些。
不要局限于6位数据,如果用12位数字,8位年月日+4位当天的流水号,就足够使用了。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-01-11 08:47
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:3 
楼主应做一个序列号生成器,从0开始,每调用一次就自动加1,在各种管理软件中,经常要用到唯一关键字,如:各种单据编号,都是用序列号生成器生成的,以保证序列号的唯一性
2015-01-11 10:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
关键要搞清楚楼主为何要为每条记录加6位不重复数字的所谓的密码,否则问题不是很好解决的。

坚守VFP最后的阵地
2015-01-11 11:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
这个有点象中行网银的动态验证码,绑定每个用户的一组6位数字码,每次验证时随机取出一个在一分钟内有效。
楼主不会是玩暴力PJ吧(开玩笑)。
2015-01-11 13:40
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用吹水佬在2015-1-11 13:40:55的发言:

这个有点象中行网银的动态验证码,绑定每个用户的一组6位数字码,每次验证时随机取出一个在一分钟内有效。
楼主不会是玩暴力PJ吧(开玩笑)。

世界之大无奇不有

坚守VFP最后的阵地
2015-01-11 14:24
快速回复:如何自动生成不容易重复的六位数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017854 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved