我想生成一个随机整数:
- 在 [Min, Max] 范围内
包含
- 范围可以是[5,20]、[-29, -3]或[-13, 13](可以是任何范围,正数或负数或介于两者之间)
- 代码在 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/