【发布时间】:2017-02-09 22:51:25
【问题描述】:
在学习 Shuffle 排序时,我学习了 Fisher Yates 解决方案。它循环 0 到数组长度,并在 0(含)和循环索引(含)和 NOT 0 和 N-1 之间找到一个随机数。找到 0 到 N-1 之间的随机数不会给出随机解。但我找不到相同的原因。
public static void sort(Comparable[] a){
for(int i = 0 ; i < a.length ; i++){
int r = StdRandom.uniform(i+1);
// why cant this be a.length
exch(a, i, r);
}
}
StdRandom.uniform(i+1) 返回返回 0 到 i(均包含)之间的随机数
【问题讨论】:
-
如果您告诉我们这是什么语言(显然是一些 C 变体,但是是哪个?),帮助会容易得多。
-
嗯...@LeeDanielCrocker 那是 Java