本帖最后由 acbdas 于 2018-5-25 15:15 编辑
公式好像不对呀,是这样的.可能我表述出问题了
假设牌组中有(1,2,3,4,5,6,7)号牌
1.随机抽N张卡
2.N张卡中至少有(1,2,3,4,5,6,7)号牌+(N-7)张随意牌 的概率
例(1,2,3,4,5,6,7,1,1,1,1,1,X,X,X,X)
然后我就改了下代码,差不多就是我需求的了
谢谢大家了
- Sub test()
- NUM = 10000
- Dim i, j, arr, dic, n, ii
- Set dic = CreateObject("scripting.dictionary") '随机数组
- arr = [b6:b31].Value: n = [g5] '定义次数
- ReDim brr(1 To UBound(arr, 1), 1 To 1) 'brr=一共多少行
- For ii = 1 To NUM 'II=循环次数
- For i = 1 To UBound(arr, 1) 'I=循环第几行
- dic.RemoveAll
- Randomize
- For j = 1 To arr(i, 1)
- dic(Int(Rnd * n) + 1) = vbNullString
- Next
- If dic.Count = n Then'如果dic的值 = 牌组数,则表示抽取成功
- brr(i, 1) = brr(i, 1) + 1
- End If
- Next
- Next
- For i = 1 To UBound(brr, 1)
- brr(i, 1) = Format(brr(i, 1) / NUM, "0.00%")
- Next
- [c6].Resize(UBound(brr, 1)) = brr
- End Sub
复制代码
|