java - 如何在java中生成四个数字的唯一随机序列
问题描述
我一直在试图弄清楚如何用 Java 编写代码来生成唯一的数字序列,如下所示:**
0012 3929 2003 2201 3994 等...
55562 23369 66665 77742 15489 等...
556612 211135 222566 333365 等...
所有可能的数字按四个或五个或更多数字块的顺序排列...
解决方案
试图在这里解析你的问题:给定输入“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 左右,它就会开始变得笨拙;这需要很多内存。
有很多方法可以做到这一点,但它变得相当复杂;大概以上对您来说已经足够了。
推荐阅读
- c++ - 从朋友类的朋友功能访问私人成员
- javascript - 无论屏幕大小如何 javasript 如何获取鼠标位置
- unity3d - 有没有办法使用 Photon Pun2 或 Photon Chat 发送或接收图像、音频和视频?
- tensorflow - Tensorflow 2 中的字符串比较:不允许使用 `tf.Tensor` 作为 Python `bool`:AutoGraph 确实转换了此函数
- r - svd(x, nu = 0, nv = k) 中的错误:“x”中的值无限或缺失。矩阵中没有 NA 或 Inf 值
- javascript - MiniCssExtractPlugin 的 linkType 和 html-webpack-link-type-plugin 都不起作用
- javascript - 使用 javascript 在社交媒体图标上的可点击事件
- three.js - 在 react-three-fiber 中重新渲染自定义 BufferGeometry 崩溃
- pine-script - 在前一根蜡烛的高点上方买入的 pine 脚本代码是什么?
- yii - 在 yii 的 modules 文件夹中创建和访问一个新文件夹