在Java中,我想生成一个程序,该程序根据种子生成大约15个数字的字符串。它总是需要从1到9.它应该是随机的,但是每个种子吐出相同的序列。 例如,如果键入数字5,则可能输出194639573978476,但如果输入6,则输出657362047273958,并且5将始终输出194639573978476。 我该怎么做?
答案 0 :(得分:0)
首先,创建一个Random实例并将其作为参数提供给它:
Random rand = new Random(seed);
然后只得到15个数字。您可以使用stringbuilder来构建字符串,或者您想要的任何其他方式。不应该太难,但这是一个快速而肮脏的方法:
String result = "";
for(int i = 0; i < 15; i++) {
result += rand.nextInt() % 9 + 1;
}
请注意这是一些非常糟糕的编程,为了简单和可读性,这样做了。这是非常差的样式,你不应该复制粘贴它而不更改它。
答案 1 :(得分:0)
首先:如果使用相同的种子创建了两个Random实例,并且为每个实例创建了相同的方法调用序列,它们将生成并返回相同的数字序列。
<强>来源:Oracle 强>
因此,每次种子需要不同以生成不同的数字。您可以将时间用作种子。像这样,
Random random = new Random(System.currentTimeMillis());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 15; i++) {
sb.append(Integer.toString((random.nextInt(9) + 1)));
}
System.out.println(sb.toString());
每次运行代码时示例输出:
146645139262732
919846574753947
662686147977574
希望这有帮助!