Random如何获取某个区域中的随机数

875 阅读1分钟

想在手机端某个坐标区域随机获取一个坐标值,用来计算位置,但是Random只支持获取某个数值以内的随机数不支持区域获取。自己用代码实现一个可以获取某个区域的随机数,下边是代码:

//获取指定范围内的随机数 不做去重处理
    public int getRandom(int start, int end) {
        int randomNum = (int) (random.nextFloat() * (end - start + 1) + start);
      //  LogUtils.d(TAG, "random(start,end):" + "(" + start + "," + end + ")" + " - randomNum = " + randomNum);
        return randomNum;
    }

思路就是先用Random随机一个float的数值,然后乘以取值范围的差值数,得到一个随机数, 在加起始数,就会到得某个区域范围的随机数。