public static int cssjs(int a,int b) {
        Random rand=new Random();
        int zhi;
        zhi=rand.nextInt(b)%(b-a+1)+a;
        return zhi;
    }

我们观察其Random对象的nextInt(int)方法,发现这个发现这个方法将生成 0 ~ 参数之间随机取值的整数。例如(假设先有 Random rand = new Random();
rand.nextInt(100);这行代码将生成范围 0~100 之间的随机数,有趣的是,取值可能为 0 ,但不可能为 100。我们用中学数学课学习的区间表示法,表示为:[0, 100)。

对产生任意取值范围内随机数的数学原理的解释:先获取0-max之间的随机数,然后对max-min+1取余,这样得到的是0到max-min,然后再加上最小值min,就是需要的随机数。假设max = 100;min=50;random.nextInt(100)应该是0-100之间的数吧,max-min+1 应该是51吧。取余数所得的数应该是0-50吧。最后再加上最小数(50) 应该是50-100吧。跟假设的最大数和最小数是对应的吧。你可以再假设其它数去试。

posted on 2019-08-26 11:36  慢漫长路  阅读(1097)  评论(0编辑  收藏  举报