[这个贴子最后由天山草在 2012/01/01 09:49pm 第 1 次编辑]
下面给出模拟这个概率的程序,调试这个程序费了几个小时,其中的精华就是如何计算出大于等于 6 的同色串个数的问题——6串,7串,8串,9串,10串,……都算是一串,如何编程呀?费了许多劲,最终发现了一种很简单的方法。懂得编程的网友,您能从下面的程序中看出来。
Private Sub form_Click()
Dim a(65)
Randomize
mmm = 100000
m = 0
For j = 1 To mmm
aa$ = ""
n = 0
For i = 1 To 65
a(i) = 1 + Int(300 * Rnd)
If a(i) >= 1 And a(i) <= 100 Then
'rint "☆";
aa$ = aa$ + "☆"
End If
If a(i) >= 101 And a(i) <= 200 Then
'rint "○";
aa$ = aa$ + "○"
End If
If a(i) >= 201 And a(i) <= 300 Then
'rint "●";
aa$ = aa$ + "●"
End If
k = k + 1
Next i
aa$ = aa$ + "#############"
For ii = 1 To 65
b6$ = Mid(aa, ii, 6)
If b6$ = "☆☆☆☆☆☆" Then n = n + 1
If b6$ = "○○○○○○" Then n = n + 1
If b6$ = "●●●●●●" Then n = n + 1
Next ii
For ii = 1 To 65
b7$ = Mid(aa, ii, 7)
If b7$ = "☆☆☆☆☆☆☆" Then n = n - 1
If b7$ = "○○○○○○○" Then n = n - 1
If b7$ = "●●●●●●●" Then n = n - 1
Next ii
m = m + n
Next j
Print "共试验"; mmm; "次"
Print "大于等于 6 的同色串有"; m; "串"
Print "出现的概率等于"; m / mmm
999: Close
End Sub