最近工作中的一个业务需要再确定范围内取出一个随机数,网上到时搜出来一堆可以实现的方法,但是鄙人仍是理解不了,虽说已经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]这个范围内的随机数。这样分析是不是很容易理解。

JAVA中随机生成确定范围内的随机数的更多相关文章

  1. java中随机生成字符串的方法(三种)

    org.apache.commons.lang(2.6): 链接:https://pan.baidu.com/s/1k_oeA5AjSt6evoR7zT8gpQ 提取码:yhl5 1.生成的字符串每个 ...

  2. java中随机生成汉字

    main方法中使用: //随机生成100个汉字 String ss=""; for(int i=0;i<100;i++){ ss+=getChinese(i); } Syst ...

  3. java的random生成某个范围内的随机数

    import java.util.Random; /** * @author HP * @date 2019/4/16 */ public class randomTest { public stat ...

  4. JS生成指定范围内的随机数(支持随机小数)

    直接需要函数的话,直接到文章的最后面找. ============================================================= 转载:https://www.cn ...

  5. java中如何生成可执行的jar文件

    java中如何生成可执行的jar文件 最简单的方法就是: jar -cfe Card.jar CardLayoutDemo CardLayoutDemo$1.class CardLayoutDemo$ ...

  6. python中随机生成整数

    1 #可以多运行几次,看看结果是不是随机生成的~ 2 3 import random 4 #调用random模块,与 5 a = random.randint(1,100) 6 # 随机生成1-100 ...

  7. 关于 Math.random()生成指定范围内的随机数的公式推导

    关于 Math.random()生成指定范围内的随机数的公式推导 在 java 中,用于生成随机数的 Math 方法 random()只能生成 0-1 之间的随机数,而对于生成指定区间,例如 a-b ...

  8. 【转载】C#使用Random类来生成指定范围内的随机数

    C#的程序应用的开发中,可以使用Random随机数类的对象来生成相应的随机数,通过Random随机数对象生成随机数的时候,支持设置随机数的最小值和最大值,例如可以指定生成1到1000范围内的随机数.R ...

  9. java Random随机生成一个数

    package java05; import java.util.Random; /* Random随机生成一个数字 1.导包: import java.util.Random; 2.创建 Rando ...

随机推荐

  1. 【题解】P3391 文艺平衡树

    用pb_ds库中的rope水过去的,忽然发现这玩意能水好多模拟题. 详见这个博客:背景的小姐姐真的好看 声明 #include <ext/rope> using namespace __g ...

  2. python numpy 的用法——diag函数

    当 np.diag(array) 中 array是一个1维数组时,结果形成一个以一维数组为对角线元素的矩阵 array是一个二维矩阵时,结果输出矩阵的对角线元素

  3. 关于javascript的事件执行机制理解

    理解javascript事件执行机制 众所周知,js是一个单线程的语言,这意味着同一时间只能做一件事,但是我们又说js是异步的.首先,单线程并不是没有优点.作为浏览器脚本语言,JavaScript 的 ...

  4. Cookie工具类(获取cookie,设置cookie)

    import java.io.UnsupportedEncodingException; import java.net.URLDecoder;import java.net.URLEncoder; ...

  5. zabbix监控项截图整理

    general监控项

  6. fastadmin中上传配置

    配置文件位于下图,默认代码如下 <?php //上传配置 return [ /** * 上传地址,默认是本地上传 */ 'rootpath' => '/uploads/', 'upload ...

  7. Delphi 通过ADO连接数据库

  8. CTAP: Complementary Temporal Action Proposal Generation论文笔记

    主要观点:基于sliding window(SW)类的方法,如TURN,可以达到很高的AR,但定位不准:基于Group的方法,如TAG,AR有明显的上界,但定位准.所以结合两者的特长,加入Comple ...

  9. zabbix 邮件报警(五)

    一.sendEmail配置zabbix邮件报警 1.下载sendEmail: wget http://caspian.dotconf.net/menu/Software/SendEmail/sendE ...

  10. Javac可以编译,Java显示找不到或无法加载主类

    运行时候加入完整包名.