【问题标题】:How to generate random numbers the give fixed results using Math.random如何使用 Math.random 生成随机数并给出固定结果
【发布时间】:2013-10-30 00:39:13
【问题描述】:

我是 JAVA 新手,我想我已经搜索了所有问题,但没有找到与我的问题相似的问题。

我想使用 Math.random() 生成可以返回 4 个固定数字的随机数。我想要得到的数字是:0、90、180 和 270。换句话说,我想要 4 个数字,最小值为 0,最大值为 270,增量为 90。

【问题讨论】:

  • 你只需要一个从0..90开始的随机数,然后加3次90?
  • @Jongware 那行不通,如果他从 0..90 中得到 1,那么您的算法将生成 91、181、271。

标签: java math random range


【解决方案1】:
int rand = ((int)(Math.random()*4)) * 90;

让我们分解一下。以Math.random() 开头,返回[0,1) 范围内的随机小数。 (0 到 0.999999999 之间的任何值...,松散。)

Math.random()*4 //Gives a random decimal between 0 and 4 (excluding 4)

接下来,我们截取小数点。

(int)(Math.random()*4) //Truncates the decimal, resulting in a random int: 0, 1, 2, or 3

最后,我们将乘以 90。

int rand = ((int)(Math.random()*4)) * 90; //0*90=0, 1*90=90, 2*90=180, or 3*90=270

【讨论】:

  • 我没有足够的声誉来投票或将此问题标记为已回答。很棒的工作。
  • @AmmarSh:谢谢!不过,您始终可以将自己的问题标记为已回答 - 只需单击它旁边的绿色复选标记!
【解决方案2】:

您最好创建一个java.util.Random 对象并重用它:

   Random r = new java.util.Random();
   ...
   int x = r.nextInt(4)*90;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2019-07-27
    • 2016-07-31
    • 2021-03-22
    • 2017-04-12
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多