...利用随机函数模拟硬币的结果,用两个硬币一起投,
发布网友
发布时间:2024-10-03 01:31
我来回答
共3个回答
热心网友
时间:1天前
Private Sub Command1_Click()
Dim arr(2) As Integer, i, a, b
Randomize
For i = 1 To 1000
a = Int(Rnd * 2): b = Int(Rnd * 2)
arr(a+b) = arr(a+b) + 1
Next
MsgBox "全正:" & arr(2) & vbNewLine & "全反:" & arr(0) & vbNewLine & "正反:" & arr(1)
End Sub
热心网友
时间:1天前
Private Sub Command1_Click()
Dim arr(1 To 3) As Long, i, a, b
For i = 1 To 1000
Randomize
a = Int(Rnd * 2)
b = Int(Rnd * 2)
If a = b Then
If a = 0 Then
arr(1) = arr(1) + 1 '全正
Else
arr(3) = arr(3) + 1 '全反
End If
Else
arr(2) = arr(2) + 1 '正反
End If
Next
MsgBox "全正:" & arr(1) & vbNewLine & "全反:" & arr(3) & vbNewLine & "正反:" & arr(2)
End Sub
热心网友
时间:1天前
Private Sub Command1_Click()
Dim s1 As String, s2 As String
Dim i As Long, a1 As Long, a2 As Long, a3 As Long '存放3种结果
For i = 1 To 100000 ' 扔100000次
s1 = getRndSZhengfan() '第一个硬币扔的结果
s2 = getRndSZhengfan() '第二个硬币扔的结果
Select Case s1 & s2
Case "正正": a1 = a1 + 1
Case "反反": a2 = a2 + 1
Case Else: a3 = a3 + 1
End Select
Next
Print "正正次数=" & a1, "反反次数=" & a2, "一正一反次数=" & a3
End Sub
'得到一次正反的结果
Private Function getRndSZhengfan() As String
Randomize
getRndSZhengfan = IIf(Int(Rnd * 2) = 0, "正", "反")
End Function