【问题标题】:How to make a random number pattern generator?如何制作随机数模式生成器?
【发布时间】:2016-01-16 16:38:35
【问题描述】:

我的情况是我试图找到一个随机数模式生成器代码,但我似乎真的找不到它。我需要使用“1”、“2”、“3”、“4”、“5”和“6”来创建一个具有 4 位数字的随机模式,如 1111、1264、2564 等。我试过这个,但不是工作。

public static void computer() {
    List<Integer> template = Arrays.asList(1, 2, 3, 4, 5, 6);
    for (int i = 0; i < 10; ++i) {
        List<Integer> items = new ArrayList<Integer>(template);
            Collections.shuffle(items);
            System.out.println(items);

    }
}

【问题讨论】:

  • 你之前在什么地方问过这个问题吗?只是想着对不起。试试stackoverflow.com/questions/363681/…
  • @AseemBansal 抱歉,我是新手,这是我的第一篇文章,所以我想我以前没有问过这个问题。我尝试搜索,但找不到随机数模式生成器的解决方案。我被这段代码困住了,不知道如何继续。因此,我问道。如果有请见谅。我想学java编程。
  • 无需抱歉。你尝试了一些东西然后来到这里。尝试阅读我提供的链接。它包含更多解释和替代方案。在学习的同时,不要只选择一个有效的解决方案,还要寻找它为什么有效的解释。这样你会学得更好。
  • @AseemBansal 感谢您的帮助和建议。我已经在检查它并做笔记了。谢谢它真的很足智多谋!

标签: java arrays random numbers generator


【解决方案1】:

试试这个:

Random r = new Random();
int number = 0;
int d = 1;

while (number < 1000) {

    // generate number between 1-6
    int num = r.nextInt(6) + 1;

    number += num * d;
    // increase the digit (units, tens, hundreds, thousands)
    d *= 10;
}

System.out.println(number);

【讨论】:

  • 为什么数字
  • 那是因为,当数字为 3 位即小于 1000 时,它进入循环并生成另一个数字,现在它变成了 4 位数字。如果支票小于 10000,它将进入循环内的 4 位数字,如 6644 并生成 5 位数字
【解决方案2】:
public static void computer() {
    List<Integer> template = Arrays.asList(1, 2, 3, 4, 5, 6);
    Random r = new Random();
    StringBuilder random = new StringBuilder();
    for (int i = 0; i < 4; ++i) {
       int create = r.nextInt(6);
       // find in array between 1-6 index
       int find = template.get(create);
       random.append(String.valueOf(find));
    }
    System.out.println(random);
}

【讨论】:

  • 非常感谢!有效。真是太感谢你了。
【解决方案3】:
  Random r = new Random();
  String s = "";
  while(s.length() < 4)
  {
     int numpick = r.nextInt() % 6;
     if(numpick > 0)
        s += numpick;
  }

  return Integer.parseInt(s);

显然可以稍微改进一下,但我认为这是发展数字的最佳策略。

【讨论】:

猜你喜欢
  • 2020-03-09
  • 2013-07-20
  • 2010-12-15
  • 2013-05-17
  • 1970-01-01
  • 2017-08-30
  • 2013-06-12
  • 1970-01-01
  • 2016-08-08
相关资源
最近更新 更多