VB如何随机执行事件

用最简单的吧:现在有可能发生的1、2、3事件,达到设定的条件后,随机发生1事件或2事件或3事件,3个事件发生几率相等,
或者像游戏抽奖一样,有1等奖2等奖,1等奖的几率比2等奖的几率小,又应该怎么写代码?

按几率执行代码
Sub aaa()
Select Case Int(Rnd * 100 + 1)
Case 1
'1%几率的动作
Case 2 To 11
'10%几率的动作
Case 12 To 31
'20%几率的动作
' ....自己设计几率的比例
' ...
' ...
Case Else
'剩余几率的动作
End Select
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-03
Dim MyValue
MyValue = Int((3 * Rnd) + 1) ' 生成 1 到 3 之间的随机数值。
Select Case MyValue
Case 1:
....
...
...
End Select

-----------------------------------
或者像游戏抽奖一样,有1等奖2等奖,1等奖的几率比2等奖的几率小,又应该怎么写代码?

若1等奖和2等奖获奖者都是1名,那么概率是一样的。100个人来算,一等奖和二等奖的概率都是1%。

假设 数字为 5的为一等奖。数字为7,8,9 的为二等奖
同理,随机生成数字
Dim MyValue
MyValue = Int((100 * Rnd) + 1) ' 生成 1 到 100 之间的随机数值。
如果数字为5,就是一等奖,数字为7,8,9为2等奖
第2个回答  2011-08-03
你看看满足你的要求吗
Private Sub Command1_Click()
Dim flag As Integer
Randomize
flag = Int(Rnd * 3 + 1)
If flag = 1 Then
Print 1 '这里写你的事件1
ElseIf flag = 2 Then
Print 2 '这里写你的事件2
Else
Print 3 '这里写你的事件3
End If
End Sub
第3个回答  2011-08-03
VB里面事件没办法随机发生。
第4个回答  2011-08-03
rand()可以产生0到1的随机数,你按照区间划分一下满足你的概率就行了。比如随机数为0~0.2是一等奖,0.2~1是二等奖什么的。。。
第5个回答  2011-08-04
用Rnd函数生成随机数就行了,然后通过修改判断是否中奖的代码来控制中奖几率