在Java中生成随机数

时间:2012-10-14 06:29:22

标签: java random

这是我得到的问题,如何将其限制在一个范围内?我的代码如下。感谢

问题:编写一个方法调用genRandom()来生成5个1到100之间的随机整数,并将它们打印到屏幕上。在main()中调用genRandom()。

import java.util.Random;

class RandomNumbers{
    public static void main(String [] args){

        Random randomNum = new Random();

        for(int i = 0; i<5; i++){
            System.out.println("Random number is : " + randomNum.nextInt(5));
            }
    }
}

5 个答案:

答案 0 :(得分:4)

nextInt()

中使用100作为参数
nextInt(100)

根据您的评论进行更新

只需创建一个新的静态方法

public static int genRandom(){
  return new Random().nextInt(100);// or may be cache random instance
}

答案 1 :(得分:1)

genRandom()课程中撰写RandomNumbers并使用如下:

    public class RandomNumbers{
       static Random randomNum = new Random();

       public static void main(String[] args){
          for(int i=0; i< 5; i++){
               System.out.println("Random number is : " + genRandom());
          }
       }

       public static int genRandom(){
          return randomNum.nextInt(100);
       }   
    }

答案 2 :(得分:0)

nextInt生成介于0和给定范围值之间的随机数。如果你给5,它将在5之间随机生成。如果你想要1到100之间的随机数,你将在nextInt方法中给出100。

请阅读java 6 api文档http://docs.oracle.com/javase/6/docs/api/java/util/Random.html#nextInt(int)。

答案 3 :(得分:0)

您可以尝试这样的事情:

package com.stackoverflow.works;

import java.util.Random;

public class RandomNumber {

    public static int genRandom(int randomRange) {
        return new Random().nextInt(randomRange);
    }

    public static void genRandom(int randomRange, int displayCount) {
        for (int i = 0; i < displayCount; i++) {
            System.out.println("Random Number [Iteration " + (i + 1) +"]: " + genRandom(randomRange));
        }
    }

    public static void main(String[] args) {
        int randomRange = 100; // You can change the limit if required
        int displayCount = 5; // You can decide the iteration count

        RandomNumber.genRandom(randomRange, displayCount);
    }

}

<强>输出:

Random Number [Iteration 1]: 14
Random Number [Iteration 2]: 84
Random Number [Iteration 3]: 96
Random Number [Iteration 4]: 38
Random Number [Iteration 5]: 61

答案 4 :(得分:-1)

您可以使用下面的nextDouble()

r = minValue + ((new Random()).nextDouble() * (maxValue - minValue));

其中minValue, maxValue是您想要随机数的范围。

完整代码

import java.util.Random;

class Main {

    int genRandom(int minValue, int maxValue) {
        return (int) (minValue + ((new Random()).nextDouble() * (maxValue - minValue)));
    }

    public static void main(String [] args){
        Main m = new Main();
        for(int i = 0; i<5; i++){
            System.out.println("Random Number is: " + m.genRandom(1, 100));
        }
    }
}

示例输出:

Random Number is: 95
Random Number is: 89
Random Number is: 9
Random Number is: 73
Random Number is: 20