找回密码
 加入
搜索
楼主: kxing

[效率算法] [已解决]请问如何更规范更高效的生成唯一的数字账号

 火.. [复制链接]
 楼主| 发表于 2013-1-15 16:38:56 | 显示全部楼层
感谢各位的回答!
我想过用+1后判断是否靓号的方法,但是这样就会给人判断出来目前已有多少会员了。
我是希望和qq那样,注册的账号限定在5位数。
每次注册都可以生成一个随机且不重复的五位数账号。
当五位数不够用时在近进六位数,似乎实现起来很麻烦。
发表于 2013-1-15 22:14:59 | 显示全部楼层
回复 15# xiaowo
生日算不算,纠结这个没多大意义,即使有规则也不能指定具体的
发表于 2013-1-15 23:03:10 | 显示全部楼层
回复 16# kxing

原来是这样啊,我倒是有个想法,先试下~~
发表于 2013-1-15 23:57:52 | 显示全部楼层
回复 16# kxing

看下这个如何???
;会员注册数字ID问题:要求输出的数据找不到规律,大小也不一定
;需要添加判断$index的值是否已经到了数据的尽头,即会员是不是用完了,需要升位等,以及你那个所谓的"靓号"判断,这里我就不加了
;此方法的好处是:除了本身的所谓的随机性外,还做到了:
;高效性(可以先生成1亿会员ID,然后保存到数据库里,需要输出时直接读就可以了)
;"物尽其用"---除了你所谓的"靓号"外,所有的ID都用得上,不存在某个数因随机性的问题没有输出(当然,"靓号"如何处理,那是你的事了)
;方便统计:只要记录下当前输出的行号(如果是在数组中,可以通过索引判断),就很方便知道已经有多少个ID被注册了
Global $index=0
$Form1 = GUICreate("会员注册数字ID演示", 270, 60)
$Button1 = GUICtrlCreateButton("注册个ID", 6, 6, 85, 30)
$Label1 = GUICtrlCreateLabel("", 100, 12, 200, 60)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
$aMember=_randomNUMArray()
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Button1
                        GUICtrlSetData($Label1,'恭喜您获得的会员ID是:'&@LF&'           '&$aMember[$index])
                        $index+=1
        EndSwitch
WEnd

Func _randomNUMArray($iStart=10000,$iEnd=99999);参数分别是ID的开始和结束
        Local $iCount=$iEnd-$iStart
        If $iCount<0 Then Return SetError(1)
        Local $aNum[$iCount]
 For $i = 0 To $iCount-1
        $aNum[$i] = $iStart
                $iStart+=1
Next
 
For $i = 0 To $iCount-1
        $r = Random($i, $iCount-1, 1)
        $temp = $aNum[$i]
        $aNum[$i] = $aNum[$r]
        $aNum[$r] = $temp
Next
Return $aNum
EndFunc
 楼主| 发表于 2013-1-16 03:04:57 | 显示全部楼层
感谢楼上的朋友!!!!
看看是否用得上。。。
发表于 2013-1-16 04:14:32 | 显示全部楼层
回复 19# annybaby
什么叫先生成1亿个,如果这样的话,排除‘靓号’的效率如何去计算,没看出有多高效
发表于 2013-1-16 09:11:14 | 显示全部楼层

标题

回复 21# netegg

其实,这个跟直接破解和利用彩虹表破解windows登录密码是一样的道理,两者的效率不可同年而语!
发表于 2013-1-16 09:20:40 | 显示全部楼层
本帖最后由 netegg 于 2013-1-16 09:27 编辑

回复 22# annybaby
非枚举破解都可以认为是非随机的
发表于 2013-1-16 09:27:56 | 显示全部楼层
回复 23# netegg


    蛋兄,你知道我在说什么吗?
算了,还是等楼主上来再说吧…
发表于 2013-1-16 09:29:44 | 显示全部楼层
本帖最后由 netegg 于 2013-1-16 09:33 编辑

回复 24# annybaby
我现在比较怀疑的是:;高效性(可以先生成1亿会员ID,然后保存到数据库里,需要输出时直接读就可以了),这个高效性是怎么出来的
两种情况:1,生成一个永久数据库,那么去掉靓号随机取索引和直接出号的区别有多大
2,生成一个临时数据库,生成库的时间怎么算,还何谈效率
发表于 2013-1-21 16:11:30 | 显示全部楼层
唯一的数字帐号???

年月日时分秒毫秒成不?

不够长地话把天数是今年第几天也加进去,或者再后面再加上4位随机数
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-12 23:48 , Processed in 0.068215 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表