在學習Shuffle排序時,我學習了Fisher Yates解決方案。它循環0到數組長度,並找到一個介於0(包括)和循環索引(包括)之間的隨機數字,並且找到不是0和N-1的。找到0和N-1之間的隨機數並不會給出隨機解。但我找不到原因。隨機排序 - Fisher Yates,爲什麼不能找到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 – cjds