首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

取不重复的随机数解决方法

2012-01-24 
取不重复的随机数Dimb,k,ib55Opend:\a.txt ForOutputAs#1Fork0To9RandomizeiInt(Rnd()*55)+1Print#1,

取不重复的随机数
Dim   b,   k,   i
b   =   55
        Open   "d:\a.txt "   For   Output   As   #1      
        For   k   =   0   To   9
                Randomize
                i   =   Int(Rnd()   *   55)   +   1
                Print   #1,   i
       
        Next   k
Close   #1
我想从0-55之间得到10个不重复的数字,但总是出现重复,请高手帮忙解决!谢谢!

[解决办法]
晕,忘记贴地址了:
http://topic.csdn.net/T/20060830/11/4985999.html
[解决办法]
Sub getRndNum()
Dim get_num(55) As Integer
Dim lsNum(10) As String
Dim aaa As Integer, k As Integer, i As Integer
Randomize
k = 0
Do While k < 10
aaa = Int(Rnd * 55) + 1
If get_num(aaa) <> 1 Then
k = k + 1
get_num(aaa) = 1
lsNum(k) = aaa
End If
Loop
Debug.Print Join(lsNum, ", ")
End Sub

[解决办法]
我的Blog里有
http://blog.csdn.net/kitegirl/
参见里面的“跳蚤算法”专门讲这个问题的。
[解决办法]
Randomize timer
dim abc(55) as intger,x as long,id as long
dim tmp as intger
for x =0 to 55
abc(x)=x)
next

for x=0 to 9
id =fix(rnd() *56) '取0-55之前的随机数
tmp= abc(x)
abc(x) =abc(id)
abc(id)=tmp
next

以上代码(调试)可以实现abc()里,前10个元素是乱序(随机)的

热点排行