kxing 发表于 2013-1-15 16:38:56

感谢各位的回答!
我想过用+1后判断是否靓号的方法,但是这样就会给人判断出来目前已有多少会员了。
我是希望和qq那样,注册的账号限定在5位数。
每次注册都可以生成一个随机且不重复的五位数账号。
当五位数不够用时在近进六位数,似乎实现起来很麻烦。

netegg 发表于 2013-1-15 22:14:59

回复 15# xiaowo
生日算不算,纠结这个没多大意义,即使有规则也不能指定具体的

annybaby 发表于 2013-1-15 23:03:10

回复 16# kxing

原来是这样啊,我倒是有个想法,先试下~~

annybaby 发表于 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

kxing 发表于 2013-1-16 03:04:57

感谢楼上的朋友!!!!
看看是否用得上。。。

netegg 发表于 2013-1-16 04:14:32

回复 19# annybaby
什么叫先生成1亿个,如果这样的话,排除‘靓号’的效率如何去计算,没看出有多高效

annybaby 发表于 2013-1-16 09:11:14

标题

回复 21# netegg

其实,这个跟直接破解和利用彩虹表破解windows登录密码是一样的道理,两者的效率不可同年而语!

netegg 发表于 2013-1-16 09:20:40

本帖最后由 netegg 于 2013-1-16 09:27 编辑

回复 22# annybaby
非枚举破解都可以认为是非随机的

annybaby 发表于 2013-1-16 09:27:56

回复 23# netegg


    蛋兄,你知道我在说什么吗?
算了,还是等楼主上来再说吧…

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位随机数
页: 1 [2]
查看完整版本: [已解决]请问如何更规范更高效的生成唯一的数字账号