我在哪裏可以找到Matlab的randperm
函數使用哪種算法?是Fisher-yates(Knuth)洗牌算法還是別的?randperm基於什麼算法?
回答
對於MATLAB釋放早在R2009b中,randperm
執行如下:
type randperm
基本上randperm
產生ñ數量和種類:
function p = randperm(n)
[ignore, p] = sort(rand(1, n));
您可以通過鍵入看到它你自己他們返回作爲隨機排列的有序索引p
的結果數組。造成這種情況的時間複雜度爲Ø(ñ日誌ñ)充其量,猶有Fisher-and-Yates' shuffle,這在Ô(ñ)運行。
編輯:丹尼斯指出,在以後的版本在Ô(ñ)時間randperm
運行,所以很明顯它的改善。但是,這是一個內置函數,所以不可能看到它的實現。
哇。在數學工作上做得不好? – Shai 2013-05-07 14:14:04
@Shai不想要任何指向,但它似乎是如此... - – 2013-05-07 14:19:27
其實我只是在2012b上使用'type randperm'時看到了這個'''randperm'是一個內置函數.'當看另一個文檔我也沒有真正看到這在任何地方被描述(儘管提到使用了rand)。 – 2013-05-07 15:11:25
- 1. 什麼是基於規則的算法?
- 2. 算法基於C
- 3. 基於什麼是高效的排序算法?
- 4. 基於Math.random的實現算法是什麼?
- 5. 什麼算法是基於C語言的Rand()?
- 6. 什麼算法opencv GCGRAPH(最大流量)基於?
- 7. 基於什麼表
- 8. 算法基於技能
- 9. 基於規則的算法
- 10. 什麼算法用於圖像縮小?
- 11. randperm的多列
- 12. 遞歸算法優於迭代算法的優點是什麼?
- 13. 什麼是算法
- 14. randperm在訓練和測試數據中的作用是什麼?
- 15. 有沒有什麼辦法可以在randperm中獲得不同的混洗?
- 16. 爲什麼`guard`基於`Alternative`?
- 17. 基於什麼PHP的default_timezone_set?
- 18. 什麼是基於Facebook PIXEL?
- 19. CirrOS基於什麼分佈?
- 20. 什麼是mach_absolute_time基於iPhone
- 21. trac基於什麼框架?
- 22. 自動文摘:提取基於什麼是基於自動摘要提取算法
- 23. HTML5不基於SGML,那麼它是基於什麼呢?
- 24. 基於加權變量計算唯一值的更好方法是什麼?
- 25. 使用基於ARM的計算機爲Android開發有什麼方法嗎?
- 26. 什麼算法用於計算具有浮點半徑的圓?
- 27. 基於重複,基於模式的數據壓縮算法
- 28. 統一基於列表樹的算法
- 29. 優化的基於時間的算法
- 30. boost ::基於線程的隊列算法
此問題的改進版本更適合[Programmers.SE](http://programmers.stackexchange.com/)。 – Jesse 2013-05-07 15:03:58
在Matlab2012b中10^5到10^8範圍內的小測試表明,計算時間與輸入大致成線性關係。 – 2013-05-07 15:23:06