首页 > 解决方案 > 如何在java中生成四个数字的唯一随机序列

问题描述

我一直在试图弄清楚如何用 Java 编写代码来生成唯一的数字序列,如下所示:**

0012 3929 2003 2201 3994 等...

55562 23369 66665 77742 15489 等...

556612 211135 222566 333365 等...

所有可能的数字按四个或五个或更多数字块的顺序排列...

标签: javarandomnumberssetsequence

解决方案


试图在这里解析你的问题:给定输入“4”,你想随机生成 0000 到 9999 之间的每个可能的数字(所以,10000 个数字)?

一种选择是首先创建集合中的所有数字,然后将其随机化:

var list = IntStream.of(0, 10000)
  .mapToObj(n -> String.format("%04d", n))
  .collect(Collectors.toList());
Collections.shuffle(list);

或者,如果“最低”数字是 1000,那么,将 0 更改为 1000,也同样有效。

您可以对任何输入执行此操作,但是一旦达到 8 左右,它就会开始变得笨拙;这需要很多内存。

有很多方法可以做到这一点,但它变得相当复杂;大概以上对您来说已经足够了。


推荐阅读