作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个原始号码(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/
我是一名优秀的程序员,十分优秀!