0
A
回答
1
從理論上講,一個perefectly隨機執行類似的Fisher-Yates算法會產生完全隨機的混洗。在實踐中,Fisher-Yates容易受到模數偏差的影響。請參閱relevant section in the Wikipedia entry和How Not To Shuffle The Knuth-Fisher-Yates Algorithm中的一些陷阱。
Knuth的經典The Art Of Computer Programming (Volume 2) - 討論MacLaren和Marsaglia可能合適的算法。最後也見Cryptographic Shuffling of Random and Pseudorandom Sequences。
相關問題
- 1. 線程安全區域設置技術
- 2. 類庫安全和許可技術
- 3. 「iframe沙箱」技術是否安全?
- 4. 通用網址技術安全
- 5. dotnet技術中的類庫和安全性
- 6. 考慮SQL注入這個PHP登錄技術是否安全?
- 7. 哪一種安全技術用於Apache和PHP?
- 8. 安全地現場更新嵌入式Linux的推薦技術
- 9. 線程安全cout技術。我錯過了什麼嗎?
- 10. 需要:靈活而安全的用戶HTML嵌入技術
- 11. Java併發 - 使用哪種技術來實現安全?
- 12. 技術用戶打破JSP頁面的安全性
- 13. 不安全的直接對象引用的緩解技術
- 14. ASP.NET會話訪問技術是多用戶安全的嗎?
- 15. HTTP壓縮 - 哪種技術最適合安全性和性能?
- 16. 是html5輸入「必需」的安全驗證技術?
- 17. WCF作爲BLL(中間層)和安全技術
- 18. 使用新技術時的安全隱患
- 19. 使用UI技術的網絡技術
- 20. ASMX技術是否完全過時
- 21. Windows安裝程序技術如何對
- 22. HTML5技術
- 23. .NET「推」技術?
- 24. GetDeviceCaps技術
- 25. 跟蹤技術
- 26. 分類技術
- 27. ajax技術
- 28. Mongomapper - bootstrapping技術
- 29. WPF技術棧
- 30. Java WebService技術
「安全」是一個空的術語。什麼被認爲是安全的取決於上下文:你想預防哪種情況,哪些情況你不關心? – Sumurai8
我的概率老師用來問這個問題:如果你有一堆完全隨機的牌,如果你再洗一次,你會得到一個或多或少是隨機的牌組?「一些安全的東西是隨機的,所以你不能得到在不知道密鑰的情況下很容易解密消息,Shuffling增加了另一個級別的加密,並不是很安全,因爲它很容易被破壞 – jdweng
我認爲這個問題應該重新修改一下;詢問「用於列表的安全洗牌算法」請注意,任何不採用密碼安全熵源作爲輸入的混洗算法可能都是混帳,許多API已經實現了混洗,例如[Java](http://docs.oracle.com/javase/) 8/docs/api/java/util/Collections.html#shuffle-java.util.List-java.util.Random-),但應該使用種子化的SecureRandom實例來進行參數化,而不僅僅是Random。 –