java - 生成从最小值到最大值的随机整数?

标签 java android random

我想生成一个随机整数:

  1. 在 [Min, Max] 范围内包含
  2. 范围可以是[5,20]、[-29, -3]或[-13, 13](可以是任何范围,正数或负数或介于两者之间)
  3. 代码在 Android 中运行良好

到目前为止我得到的是这个,但它似乎不适用于负范围!

1 + (int)(Math.random() * ((Max - Min) + 1));

最佳答案

我很确定你想要

Min+(int)(Math.random()*((Max-Min) + 1));

但是,我应该指出范围 [-3,-29] 的最小值和最大值颠倒了。 (与 Merlyn 指出的 [5,-13] 相同。)

如果你只想输入范围内的任意两个数字,a 和 b 然后使用代码

int Min = Math.min(a,b);
int Max = Math.max(a,b);

这样您就不必担心顺序问题。这甚至适用于 a==b。

关于java - 生成从最小值到最大值的随机整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219058/

相关文章:

c# - 使用 RNGCryptoServiceProvider 生成随机字符串

java - 在 Java 中生成格式化的差异输出

java - 如何确定 Java 字符串的子字符串是否与正则表达式匹配?

android - 如何停止父 Activity 的 Activity ?

java - 如何请求成为 Android 中的默认视频播放器的权限?

java - Android异步任务代码结构

MySQL 随机,间隔超过 40 万行

java - 在 javascript 函数中使用 scriplet

java - 2-3-4树的高度

c - C 中的 Tic Tac Toe AI 问题