专栏首页菜鸟程序员Java中在特定区间产生随机数

Java中在特定区间产生随机数

生成指定范围内的随机数

这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于: 如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。 或者是: 如何随机生成随机的3位整数? 等等…… 以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数。例如(假设先有 Random rand = new Random();,下同): rand.nextInt(100); 这行代码将生成范围 0~100 之间的随机数,有趣的是,取值可能为 0 ,但不可能为 100。我们用中学数学课学习的区间表示法,表示为:[0, 100)。 那么如果要获得区间 [1~100] 的随机数,该怎么办呢?稍微动动脑筋就可以想到:区间 [0, 100) 内的整数,实际上就是区间 [0, 99]。因为最大边界为100,可惜不能等于100,因此最大可能产生的“整数”就是99。 既然 rand.nextInt(100) 获得的值是区间 [0, 99],那么在这个区间左右各加 1,就得到了区间 [1, 100]。因此,代码写成: rand.nextInt(100) + 1; 即可。

产生不重复的给定范围随机数:

nums[i] = (int)Math.round((new Random().nextInt(20) + 1));//随机的不同的整数生成

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux下的压缩命令

    用户1697231
  • 关于Intel ME SA-00086 漏洞,你应该知道的更多

    用户1697231
  • 开启HSTS让浏览器强制跳转HTTPS访问

    用户1697231
  • ApacheCN 翻译活动进度公告 2019.3.10

    参与方式:https://github.com/apachecn/pytorch-doc-zh/blob/master/CONTRIBUTING.md

    ApacheCN_飞龙
  • 布客·ApacheCN 翻译校对活动进度公告 2020.5

    参与方式:https://github.com/apachecn/interpretable-ml-book-zh/blob/master/CONTRIBUTI...

    ApacheCN_飞龙
  • emgucv之Matrix操作

    zls365
  • ApacheCN 翻译活动进度公告 2019.3.24

    参与方式:https://github.com/apachecn/seaborn-doc-zh/blob/master/CONTRIBUTING.md

    ApacheCN_飞龙
  • MTO变量缩放与统一决策空间

    但是变量还是约束在原来的范围,即第一维还是控制在在0-1之间 ,这种方式其实没有运用到统一决策空间,而是传统的算法。但是由于scaleVariable函数在评价...

    DrawSky
  • ApacheCN 翻译活动进度公告 2019.6.21

    参与方式:https://github.com/apachecn/stanford-cs224n-notes-zh/blob/master/CONTRIBUTI...

    ApacheCN_飞龙
  • 光模块专题:谈谈数据中心100G光模块主流标准

    今天易天光通信(ETU-LINK)跟大家谈谈数据中心100G光模块主流标准,传统数据中心主要基于10G网络架构,为了适应AI、深度学习、大数据计算等业务的规模部...

    易天光通信

扫码关注云+社区

领取腾讯云代金券