gpt4 book ai didi

java - 如何让打乱后的数字不等于原来的数字? ( java )

转载 作者:行者123 更新时间:2023-12-02 13:42:34 25 4
gpt4 key购买 nike

我有一个原始号码(LoadG1)。然后,我生成该数字的打乱版本,如下面的代码所示。注意:generateG1 是一个Random

int loadG1 = generateG1.nextInt(89999) + 10000;
for (int allrbA = 0; allrbA < 4; allrbA++) {

StringBuilder charLoadG1 = new StringBuilder(String.valueOf(loadG1));
StringBuilder randomLoadG1 = new StringBuilder();
while(charLoadG1.length() != 0) {
int index = generateG1.nextInt(charLoadG1.length());
char c = charLoadG1.charAt(index);
randomLoadG1.append(c);
charLoadG1.deleteCharAt(index);
}

}

if(Integer.valueof(String.valueof(randomLoadG1))==loadG1) {
for (int allrbA = 0; allrbA < 4; allrbA++) {

StringBuilder charLoadG1 = new StringBuilder(String.valueOf(loadG1));
StringBuilder randomLoadG1 = new StringBuilder();
while(charLoadG1.length() != 0) {
int index = generateG1.nextInt(charLoadG1.length());
char c = charLoadG1.charAt(index);
randomLoadG1.append(c);
charLoadG1.deleteCharAt(index);
}

}

这成功地重新排列了 loadG1 中的数字,被视为 randomLoadG1 的值。问题是,我不希望 randomLoadG1 永远等于 loadG1。如果将其重新排列成完全相同的顺序,则可能会发生这种情况。我尝试使用 while 循环来解决这个问题,但每当生成相同的 randomLoadG1 时,它只会使我的应用程序崩溃。

任何人都可以帮忙解释如何让 randomLoadG1 (原始 loadG1 的改组版本)永远不会与 loadG1 具有相同的值吗?非常感谢任何提交的代码,非常感谢。

最佳答案

这是一个伪代码实现:

number1 = random number
do {
number2 = random_shuffle(number1);
} while (number1 == number2)

...其中 random_shuffle(number1) 代表您现有的随机播放算法。

现在我不明白为什么你不能重构现有的实现来遵循这种模式,但它应该是简单的Java编程。如果您的代码崩溃了,那么您应该使用调试器来找出原因。

关于java - 如何让打乱后的数字不等于原来的数字? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com