• JAVA中随机生成确定范围内的随机数


    最近工作中的一个业务需要再确定范围内取出一个随机数,网上到时搜出来一堆可以实现的方法,但是鄙人仍是理解不了,虽说已经copy方法直接完成工作了。今天抽时间整理下,希望能够帮助大家更好的理解随机数的实现原理;

    1、网上直接找到的实现方法:

    第一种实现方法:

    public static String getRandom(int min, int max){
        Random random = new Random();
        int s = random.nextInt(max) % (max - min + 1) + min;
        return String.valueOf(s);
    
    }
    

    第二种实现方法:

    public static String getRandom(int min, int max){
        int s = (int) (Math.random() * (max - min + 1) + min);
        return String.valueOf(s);
    }
    

    上述俩中方法均可实现确定范围内取出一个随机值的功能,但是我是没有一下看明白是如何实现的,下来把让大家一看就明白的方法贴出来;

    public static String getRandom(int min, int max){
        Random random = new Random();
        int s = random.nextInt(max - min + 1) + min;
        return String.valueOf(s);
    
    }
    

    聪明的你是不是一下就看明白了,其实我们的random.nextInt(num)只能生成[0,num)范围内的随机数,若想生成[min,max]的随机数,我们可以先这样计算[min-min,max-min+1],于是我们就得出一个[0,max-min+1]这个范围,自然就可以计算出[0,,max-min+1]的随机数,然后将[0,,max-min+1]加上min,就是将这些随机数统一扩大min个,就可以得到[min,max+1]这个范围内的随机数。这样分析是不是很容易理解。

  • 相关阅读:
    Struts2中请求参数的接收方式和ModelDriven机制及其运用
    struts2获得请求参数的方式
    参数(parameter)和属性(Attribute)的区别
    getContextPath、getServletPath、getRequestURI,getRealPath的区别
    struts2的result的type属性
    Struts2的值栈和对象栈
    el表达式跟ognl表达式的区别(转)
    Struts学习之值栈的理解
    创建虚拟机-1
    安装kvm模块配置网络
  • 原文地址:https://www.cnblogs.com/aoshicangqiong/p/7840081.html
Copyright © 2020-2023  润新知