2017-05-09 66 views
-1

我們可以減少Fisher-Yates混洗算法中對rand(n)進行的呼叫次數嗎?如果不是,我們怎麼知道我們所做的電話號碼是合理的。Fisher-Yates shuffle算法

+0

費雪耶茨的作品。通過一系列隨機選擇的,與每個選擇都選擇一個對象。如果你試圖用更少的選擇來獲勝,那麼就不會再有費希爾 - 耶茨了。 –

回答

0

我們可以減少節數被調用到蘭特(N)取得了費雪耶茨洗牌算法

沒有

要選擇從陣列k點 - 有k致電rand(),最多N-1

如果不是,我們如何知道我們正在撥打的電話號碼是否合理。

那麼,你應該知道你想要多少分生產/置換,所以這是你有多少呼叫rand()使