从Min到Max生成随机整数?

iTu*_*rki 1 java random android

我想生成一个随机的Integer:

  1. 在[Min,Max]范围内 inclusive
  2. 范围可以是[5,20],[ - 29,-3]或[-13,13](它可以在任何范围内,正或负或之间)
  3. 代码在Android中正常运行

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

1 + (int)(Math.random() * ((Max - Min) + 1));
Run Code Online (Sandbox Code Playgroud)

Kei*_*win 10

我很确定你想要的

Min+(int)(Math.random()*((Max-Min) + 1));
Run Code Online (Sandbox Code Playgroud)

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

如果您只想为该范围输入任意两个数字,则a和b然后使用该代码

int Min = Math.min(a,b);
int Max = Math.max(a,b);
Run Code Online (Sandbox Code Playgroud)

这样你就不用担心订单了.这甚至适用于== b.