我有一個撲克和二十一點遊戲,它將一張基卡卡片存儲在一個MySQL數據庫中。爲了洗牌,我使用ORDER BY RAND()隨機地訂購表格,並按照該順序將卡片插入到不同的表格中。使用RAND()會導致逼真的賠率,這種賠率會被真實的牌和物理洗牌玩弄,或者這個功能不夠隨機?MySQL的RAND()足夠用於紙牌遊戲的「洗牌」牌套牌嗎?
2
A
回答
5
與真正的卡片混洗並不是真的都是隨機的,除非你練習很多。不正確地洗牌很容易,因此包裝的頂部或底部不能很好地洗好。
使用ORDER BY RAND()洗牌是一種合理的做法,但也有一些事情需要注意的:
- 如果由RAND產生了兩個完全相等的隨機數引入略有偏差()作爲它不會將這兩張卡相互正確地洗牌。
- RAND()不是密碼安全的。通過觀察甲板上的一些第一張牌,熟練的攻擊者可以推斷用於洗牌的PRNG的內部狀態,並因此預測剩餘的牌。
- ORDER BY RAND()需要O(n log(n))操作。例如,它很可能具有可接受的性能來混洗52行,但它可能不是您想要用於洗牌數百萬行的東西。
爲了娛樂目的,你的方法應該沒問題。如果這是嚴重的錢,你可能想使用更好的洗牌算法,如Fisher Yates shuffle和密碼安全的隨機數發生器。
0
供您使用:可能。
從遊戲行業來看:
號內華達州博彩委員會監督的可能性,並在這裏批准了遊戲的隨機性。爲了達到這個目的,消除隨機發生器RE的可能性是符合房屋利益的,所以真正的遊戲軟件使用必須通過認證方法(通常使用一些自然混沌輸入)獲得的到期「真隨機」種子。銀行通常會使用類似的工具。
如要進一步瞭解,請參閱LavaRand
相關問題
- 1. 這款洗牌算法對iOS卡牌遊戲來說足夠隨機嗎?
- 2. HTML5紙牌遊戲
- 3. 如何填充,洗牌,處理紙牌遊戲
- 4. 用python實現紙牌遊戲套牌的最佳方式
- 5. Bluej的紙牌遊戲
- 6. vhdl testbench的紙牌遊戲?
- 7. Prolog卡牌遊戲:有效套牌
- 8. 紙牌遊戲設計
- 9. C,紙牌遊戲WAR
- 10. 紙牌遊戲模擬list.remove
- 11. HTML 5 Canvas紙牌遊戲
- 12. c#,代表,紙牌遊戲
- 13. 紙牌遊戲設計
- 14. 紙牌遊戲:win play
- 15. AI設計紙牌遊戲
- 16. 如何翻轉紙牌遊戲中的紙牌?
- 17. 洗牌一套
- 18. 不使用陣列的紙牌遊戲
- 19. 洗牌一副牌?
- 20. 如何根據用戶的輸入添加另一套牌到紙牌遊戲
- 21. 如何在卡牌遊戲卡洗牌()中切換卡牌位置
- 22. Java中的紙牌遊戲問題
- 23. 在紙牌遊戲中的mvc設計
- 24. 開發Android的在線紙牌遊戲
- 25. 對單人紙牌遊戲的建議
- 26. Android的紙牌遊戲隨機()
- 27. 簡單的python紙牌遊戲
- 28. 與WCF和WPF的紙牌遊戲
- 29. 更新紙牌遊戲的分數
- 30. 用紙牌遊戲OOP設計Quesiton