0

我需要生成 100 个随机 3 位数字。我已经弄清楚如何生成 1 个 3 位数字。如何生成 100?这是我到目前为止所拥有的...

import java.util.Random;

public class TheNumbers {
    public static void main(String[] args) {
      System.out.println("The following is a list of 100 random" + 
          " 3 digit numbers.");
      Random rand= new Random();

          int pick = rand.nextInt(900) + 100;
          System.out.println(pick);


}

}

4

5 回答 5

5

基本概念是使用for-next循环,您可以在其中重复计算所需的次数......

您应该查看The for 声明以获取更多详细信息

Random rnd = new Random(System.currentTimeMillis());
for (int index = 0; index < 100; index++) {
    System.out.println(rnd.nextInt(900) + 100);
}

现在,这不会排除生成重复项。您可以使用 aSet来确保值的唯一性...

Set<Integer> numbers = new HashSet<>(100);
while (numbers.size() < 100) {
    numbers.add(rnd.nextInt(900) + 100);
}
for (Integer num : numbers) {
    System.out.println(num);
}
于 2013-08-30T01:38:25.357 回答
2

尝试循环

for(int i=0;i<100;i++)
      {
          int pick = rand.nextInt(900) + 100;
          System.out.println(pick);
      }
于 2013-08-30T01:33:29.937 回答
2

如果您根据您的问题调整以下代码

    for(int i= 100 ; i < 1000 ; i++) {
        System.out.println("This line is printed 900 times.");
    }

,它会做你想做的事。

于 2013-08-30T01:34:48.750 回答
0

使用Generate random numbers in a range with Java问题的答案:

import java.util.Random;

public class TheNumbers {
    public static void main(String[] args) {
      System.out.println("The following is a list of 100 random 3 digit nums.");
      Random rand = new Random();
      for(int i = 1; i <= 100; i++) {
        int randomNum = rand.nextInt((999 - 100) + 1) + 100;
        System.out.println(randomNum);
      }
}
于 2013-08-30T01:36:54.977 回答
0

如果 3 位数字包含以 0 开头的数字(例如,如果您正在生成 PIN 码),例如 000、011、003 等,则此解决方案是一种替代方案。

Set<String> codes = new HashSet<>(100);
Random rand = new Random();
while (codes.size() < 100)
{
   StringBuilder code = new StringBuilder();
   code.append(rand.nextInt(10));
   code.append(rand.nextInt(10));
   code.append(rand.nextInt(10));

   codes.add(code.toString());
}

for (String code : codes) 
{
    System.out.println(code);
}
于 2013-08-30T01:55:43.437 回答