gpt4 book ai didi

java - java.util.Collections.shuffle(List list) 可以按照与 "sent to be shuffled"相同的顺序返回列表吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:49:04 27 4
gpt4 key购买 nike

docs说“所有排列的发生概率大致相等。”但我不知道这是否包括返回相同订单的可能性(无论多么小)。我有一个方法(见下文),在两次测试运行期间,列表以原始顺序返回,也许……其他因素可能有问题,比如可能已经选择了一个字谜,结果是一个词。词典大约有 300,000 个单词,因此我已将方法更改为更合适的测试,以防止出现这种情况。方法:

private static char[] nextScrambledWord(int wordLength) {

String word;
do {
word = "ABCDEF"; //TODO Get a word from lexicon
} while(word.length() != wordLength);

ArrayList<Character> temp = new ArrayList<Character>(wordLength);
for(int i = 0; i < wordLength; i++) {
temp.add(word.charAt(i));
}

Collections.shuffle(temp);

char[] result = new char[wordLength];
for(int i = 0; i < wordLength; i++) {
result[i] = temp.get(i);
}
return result;
}

我也很好奇这个方法本身。如果有人对如何改进这一点有任何建议,请随时分享。基本上,该方法将从一个集合中提取一个 wordLength 的单词,并返回一个混洗结果的 char 数组。我没有考虑轮询已知长度的单词,而是考虑根据单词长度将词典分成多个集合。

最佳答案

是的,原始顺序可能会保留下来,但是,正如您所说,对于较长的列表,这不太可能。试试只有两个元素的列表,看看会发生什么。

关于java - java.util.Collections.shuffle(List list) 可以按照与 "sent to be shuffled"相同的顺序返回列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273421/

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