java 几率实现以55%的几率生成3

来源:互联网 发布:知乎书单 编辑:程序博客网 时间:2024/06/10 15:37

按照一定的几率实现程序逻辑也是随机处理可以解决的一个问题。下面以一个简单的示例演示如何使用随机数字实现几率逻辑。

在前面的方法介绍中,nextInt(int n)方法中生成的数字是均匀的,也就是说该区间内部的每个数字生成的几率是相同的,而且由于该区间中总计有100个整数,所以每个数字的几率都是1%。按照这个理论,可以实现程序中的几率问题。

示例:随机生成一个整数,该整数以55%的几率生成1,以40%的几率生成2,以5%的几率生成3.实现代码如下:

public static void main(String[] args) {
    Random r = new Random();
    int n = r.nextInt(100);
    int m ; //随机数字
    if(n<55){
      m = 1;
    }else if(n<95){
      m = 2;
    }else{
      m=3;
    }
  }

因为每个数字的几率都是1%,则任意55个数字的区间几率就是55%,为了代码方便书写,这里使用[0,55)区间所有的整数,后续的原理一样。