【发布时间】:2011-02-18 21:33:32
【问题描述】:
我有一个扑克和二十一点游戏,将基本牌组存储在 MySQL 数据库中。为了洗牌,我使用 ORDER BY RAND() 对桌子随机排序,然后按该顺序将卡片插入另一个桌子。使用 RAND() 会产生真实的赔率,就像玩真牌和物理洗牌一样,还是这个函数不够随机?
【问题讨论】:
标签: mysql random probability
我有一个扑克和二十一点游戏,将基本牌组存储在 MySQL 数据库中。为了洗牌,我使用 ORDER BY RAND() 对桌子随机排序,然后按该顺序将卡片插入另一个桌子。使用 RAND() 会产生真实的赔率,就像玩真牌和物理洗牌一样,还是这个函数不够随机?
【问题讨论】:
标签: mysql random probability
除非你经常练习,否则用真牌洗牌并不是那么随意。很容易错误地洗牌,以至于包的顶部或底部都不能很好地洗牌。
使用 ORDER BY RAND() 洗牌是一种合理的方法,但需要注意一些事项:
出于娱乐目的,您的方法应该没问题。如果这是为了大笔资金,您可能需要使用更好的随机播放算法,例如 Fisher Yates shuffle 和加密安全的随机数生成器。
【讨论】:
供您使用:可能。
从游戏行业的角度来看:没有。
内华达州博彩委员会在这里监督获批游戏的几率和随机性。为此目的,消除 RE 随机发生器的可能性符合公司的利益,因此真正的游戏软件使用过期的“真正随机”种子,这些种子必须通过经过认证的方法获得(通常使用一些自然混乱的输入)。银行通常会使用类似的工具。
如需进一步阅读,请参阅 LavaRand
【讨论】: