[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 为何此VBS生成的随机数中那么多重复的?

  1. function randomchar(tlen)
  2. dim tmp,i,j
  3. for j=1 to tlen step 1
  4. 'i=randomnumber.value(1,3) 'QTP的用法,不适用于vbs
  5. Randomize
  6. i=int((3*rnd) +1)
  7. '1-大写字母,2-数字,3-小写字母
  8. select case i
  9. Case 1
  10. Randomize
  11. tmp=int(26*rnd)
  12. tmp=tmp+97
  13. case 2
  14. Randomize
  15. tmp=int(10*rnd)
  16. tmp=tmp+48
  17. case 3
  18. Randomize
  19. tmp=int(26*rnd)
  20. tmp=tmp+65
  21. case else
  22. msgbox("function:randomchar(tlen) is wrong!")
  23. end select
  24. randomchar=randomchar&chr(tmp)
  25. Next
  26. end Function
  27. Dim fso,myfile,i
  28. Set fso=CreateObject("scripting.filesystemobject")
  29. Set myfile=fso.CreateTextFile("C:\Documents and Settings\Administrator\Desktop\123.txt",True,True)
  30. i=0
  31. Do
  32. myfile.WriteLine(randomchar(14))
  33. i=i+1
  34. If i>1200 Then Exit Do
  35. Loop Until i>1000
复制代码
应该说不会产生太多相同随机数的,但是从打印结果中发现好多相同的,而且是有规律的右移,如下是某次产生的随机数,是搜索sn时的部分结果
        Line 789: SN5iqT02P06D72
        Line 798: y7SN5iqT02P06D
        Line 807: mGy7SN5iqT02P0
        Line 816: jvmGy7SN5iqT02
        Line 825: oZjvmGy7SN5iqT
        Line 834: BFoZjvmGy7SN5i
        Line 843: PmBFoZjvmGy7SN

        Line 853: SN5iqT02P06D72
        Line 862: y7SN5iqT02P06D
        Line 871: mGy7SN5iqT02P0
        Line 880: jvmGy7SN5iqT02
        Line 896: qvtG1SSN5pqT02
        Line 905: 5ZqvtG1SSN5pqT
        Line 914: BF5ZqvtG1SSN5p
        Line 923: 6tBF5ZqvtG1SSN

4# batman
你的这两种方式都试过,仍然存在蛮多的重复现象,还是不清楚是哪里出了问题,以前看C#的时候见过有讨论,可能和时间种子之类有关,我也在继续找找原因

TOP

返回列表