|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 andy3303 于 2012-9-28 00:10 编辑
哈哈,这样是不是更简单点
Sub 不重复随机数()
Dim m%, n%, i%
Dim arrm() As Integer, arrn() As Integer
m = Range("a1") '例如500
n = Range("b1") '例如100
ReDim arrm(1 To m)
ReDim arrn(1 To n)
For i = 1 To m
arrm(i) = i
Next
For j = 1 To n
i = Int(Rnd * (m + 1 - j) + 1)
arrn(j) = arrm(i)
arrm(i) = arrm(m + 1 - j)
Next
i = 1
For Each a In Range("a2:j11") '改变单元格区域就出错了,谁教教怎么做变动区域。
a.Value = arrn(i)
i = i + 1
Next
Erase arrm, arrn
End Sub
但是要生成10组不重复的随机数组怎么做呢?
x1,x2,x3,......,x10共10变量,它们每个变量都有20种可能,如果每个组合一个个枚举,需要20^10组合,是个天文数字。现在希望生成10000组随机数,每组随机数包括每一个变量的一种情况,但任何两组随机数不能每个变量的值都相同。
例如:
1,2,3,7,12,19,20,......
1,2,3,7,12,19,19,......可以
|
|