Java关于随机数的问题?
路人甲攻击路人乙,假设结果只可能是“击中”,"击中要害","躲闪","招架"这四种之一,
并且只能是一种(为描述方便这四种结果分别用符号A、B、C、D代表);
假设这四种结果产生的概率分别是a%、b%、c%、d%,其中a+b+c+d=100,要求从这四种结果中随机选一种结果,
发生概率越高的事件被选中的几率越大。
/**
*根据概率随机选择一种结果,发生概率越高的事件被选中的几率越大
*@param per 参数数组的元素值分别顺序代表A,B,C,D发生的概率
*@return 返回0代表A事件,返回1代表B事件,返回2代表C事件,返回3代表D事件
*/
public int randomResult(int[] per){
} Java random
[解决办法]
**
*根据概率随机选择一种结果,发生概率越高的事件被选中的几率越大
*@param per 参数数组的元素值分别顺序代表A,B,C,D发生的概率
*@return 返回0代表A事件,返回1代表B事件,返回2代表C事件,返回3代表D事件
*/
public int randomResult(int[] per){
int i = (int)100*random();
if(i<=per[0])
return 0;
if(per[0]<i<per[0]+per[1])
return 1;
if(per[0]+per[1]<i<per[0]+per[1]+per[2])
return 2;
if(per[0]+per[1]+per[2]<i<100)
return 3;
}