日期:2014-05-20  浏览次数:20747 次

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;