如何得到相对合理的事件发生概率
我在做ai设计的时候对于npc的ai有这样一种处理.
在条件1的时候 30%概率发生攻击 40%概率发生靠近 30%概率发生退后
在条件2的时候 70%概率发生攻击 10%概率发生靠近 20%概率发生退后.
现处理方式如下
int num = getRand(0,10);//取,0到9之间的随机值
if(条件1) {
if(num < 3)攻击
else if(num < 7)靠近
else 退后
}else
if(条件2) {
if(num < 7)攻击
else if(num < 8)靠近
else 退后
}
但是实际上 这样的概率取得方式并不理想,多数情况下不能体现概率的含义,而num的值总是取得一定范围内浮动.而导致发生的事情是相对情况下是一定的.
请问有其他方式可以得到相对真是的概率么?
[解决办法]
这个getRand得到的随机数是平均分布的么?如果是,LZ的代码没有问题。