EXCEL中,我想在一个单元格区域内产生N个随机数整数,这些随机整数不能重复!我试过rand函数和randbetween函数,但他们产生和结果都会有很多重复!急用!有意回答者,Private Sub 试算_Click()Dim seed,msg,tms
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 05:43:15
EXCEL中,我想在一个单元格区域内产生N个随机数整数,这些随机整数不能重复!我试过rand函数和randbetween函数,但他们产生和结果都会有很多重复!急用!有意回答者,Private Sub 试算_Click()Dim seed,msg,tms
EXCEL中,我想在一个单元格区域内产生N个随机数整数,这些随机整数不能重复!
我试过rand函数和randbetween函数,但他们产生和结果都会有很多重复!急用!有意回答者,
Private Sub 试算_Click()
Dim seed,msg,tmsg,num,t4,t5,i
seed = Year(Date) & Month(Date) & Day(Date) & Hour(Now()) & Int(Second(Now()) / 10)
Randomize (seed)
t4 = Val(TT4.Text) 'TT4和TT5为赋值文本框
t5 = Val(TT5.Text)
For i = t4 To t5
msg = " "
num = 0
Do Until num = 8
tnum = Int(Application.RandBetween(1,20))
If InStr(" " & msg & " ",tnum) = 0 Then
num = num + 1
msg = msg & tnum & " "
End If
Loop
msg = Split(Trim(msg)," ")
For num = 0 To UBound(msg)
Cells(i,27 + num + 1).Value = msg(num)
Next num
Next i
End Sub
此程序是我用看了别人的程序加以改善而来,
用来模拟广东快乐十分20选8出号程序期中的一段!
此段程序所产生的1到20的随机数,反复试了好几个500期随机数,前面小数1-5分布很少!20选8,平均机率为0.4,500期产生的每个数出号次数应该控制在180-220之间,100期内每个数出号次数应控制在32-48之间,即幅度应在0.32-0.48之间.如何写程序!
有帮我者,
EXCEL中,我想在一个单元格区域内产生N个随机数整数,这些随机整数不能重复!我试过rand函数和randbetween函数,但他们产生和结果都会有很多重复!急用!有意回答者,Private Sub 试算_Click()Dim seed,msg,tms
打开excel文档,然后按alt+f11进入vbe编辑窗口,插入模块
'然后把下面的代码复制到模块里面,然后保存,再次按alt+f11返回
'excel窗口,按alt+f8,运行suijishu宏就可以在当前表格a1-a500
'产生不重复的1-500个随机数,希望对你有用,代码已亲测通过
,----------------代码如下-------------------
Sub suijishu()
Dim t,i,sjs(500)
For t = 1 To 500
Randomize
sjs(t) = Int(500 * Rnd) + 1
For i = 1 To (t - 1)
If sjs(t) = sjs(i) Then
sjs(t) = Int(500 * Rnd) + 1
i = 0
End If
Next i
Next t
For t = 1 To 500
ActiveSheet.Range("a" & t).Value = sjs(t)
Next t
End Sub