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

请教从1到n范围内抽取出x个不重复随机数的代码是不是这样写

2012-01-26 
请问从1到n范围内抽取出x个不重复随机数的代码是不是这样写请问,我希望写一个能够获得x个1ton范围内的不重

请问从1到n范围内抽取出x个不重复随机数的代码是不是这样写
请问,我希望写一个能够获得x个1   to   n范围内的不重复随机数的代码。应该如何写代码。也就是从1、2、3...n这些数中随机挑出x个。
以下代码的作用是获得x个0   to   n范围内的不重复随机数,其原理是“快速跳蚤算法”。应该如何改写,才能编程从1   to   n范围内抽取。
'初始化
For   i=0   to   n
a(i)=i
Next
'乱序
For   i=0   to   (x-1)
r=int(rnd*(n+1))
Swap   a(i),a(r)
Next
'拣出
For   i=1   to   x
b(i)=a(i-1)  
Next

[解决办法]
给你一段代码参考一下
Dim blAAA As Boolean
Dim j As Integer
For i = 0 To x
Randomize
r = Int(Rnd * n + 1)
For j = 0 To i
If A(i) = r Then
i = i - 1
blAAA = True
Exit For
End If
Next j
If Not blAAA Then
A(i) = r
Else
blAAA = False
End If
Next i

热点排行