EXCEL中,我想在一个单元格区域内产生N个随机数整数,这些随机整数不能重复!
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 21:53:48
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之间.如何写程序!
有帮我者,
我试过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文档,然后按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
再问: 首先感谢你的回答,你的程序完全OK,但和我的程序一样,有点小小的不足在于,前面小数部份,分布太少,我想把每个数的出号次数的幅度控制在一定范围内,期数越多,越平均!要求一定的平衡度! (20选8) 50期:每个数次数机率(0.3-0.5), 100期:0.32-0.48, 300期:0.35-0.45, 500期:0.37-0.43, 1000期:0.38-0.42 谢谢你再帮帮我!看我的问题补充!一定厚报!谢谢!
'然后把下面的代码复制到模块里面,然后保存,再次按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
再问: 首先感谢你的回答,你的程序完全OK,但和我的程序一样,有点小小的不足在于,前面小数部份,分布太少,我想把每个数的出号次数的幅度控制在一定范围内,期数越多,越平均!要求一定的平衡度! (20选8) 50期:每个数次数机率(0.3-0.5), 100期:0.32-0.48, 300期:0.35-0.45, 500期:0.37-0.43, 1000期:0.38-0.42 谢谢你再帮帮我!看我的问题补充!一定厚报!谢谢!
EXCEL中,我想在一个单元格区域内产生N个随机数整数,这些随机整数不能重复!
EXCEL 如何在一行中产生0-9范围内不重复的随机整数
Excel中如何产生[50,90]之间的随机数和随机整数
excel 如何在A1到E1这5个单元格里面产生5个0—9的随机数(这5个数不能重复)求公式
如何用excel产生1~68,68个不重复的随机的整数?
excel 范围值 随机,我想建立一个在正负10之间的随机整数分布.求个公式
如题:在EXCEL中如何使一行随机整数的和是个固定值且满足随机数在一个限定范围内,并生成的随机数之间有大小要求
随机产生N个1,1000之间不重复的整数存入数组A中,并按从大到小顺序排列.键入整数X,查找:若无,则插入,
VB:随机产生 10 个整数,求其中最小的数.若随机产生n个整数又如何实现
在EXCEL中如何使用随机函数在一块区域中产生介于0-9之间的不重复的整数?
excel如何随机生成不重复整数?
vb用function编写一个产生随机整数过程,输出n个指定范围的随机整数