zoukankan      html  css  js  c++  java
  • 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]这个范围内的随机数。这样分析是不是很容易理解。

  • 相关阅读:
    CentOs图形界面的开启与关闭
    在CentOS上安装ZooKeeper集群
    CentOs中mysql的安装与配置
    CentOS 6.5 下安装 Redis 2.8.7
    apt-get 与 yum的区别 (转)
    centos 命令大全
    ctrl+c,ctrl+d,ctrl+z在linux中意义
    Jedis 例子(demo)大全
    gradle init.gradle的文件配置 使用
    Java使用Jetty实现嵌入式Web服务器及Servlet容器
  • 原文地址:https://www.cnblogs.com/aoshicangqiong/p/7840081.html
Copyright © 2011-2022 走看看