【问题标题】:How do online blackjack games shuffle cards?在线二十一点游戏如何洗牌?
【发布时间】:2018-04-02 07:41:31
【问题描述】:

在线二十一点游戏使用什么洗牌方法?他们是在代码中保留一副卡片表示形式,还是只是将每手牌视为从一组卡片中随机抽取的全新选择?

【问题讨论】:

  • 好吧,如果每手牌都是全新的,那它就不会是二十一点,所以必须有一个模拟的牌组“鞋子”。它是一个实现细节,它是如何模拟的。最自然的事情是提前进行 Fisher-Yates 洗牌,但这只是猜测,因此有点基于意见,也过于宽泛。虽然这是一个有趣的问题,但我认为这并不是真正的话题。此外,您的问题似乎假设所有站点都使用相同的方法。为什么这是真的?
  • 你没有要求它,但我提到它:他们将使用(1)外部熵(物理测量;也许与站点相关的时间/用户行为,尽管不是后一个单独的)( 2)cryptoPRNG。 - 其余的取决于游戏;但如果需要改组,Fisher-Yates 就很棒(给定一些随机位)。
  • 那些正确做到这一点的人将正确地模拟一副带有数组的卡片或卡片,使用具有超过 240 位状态的良好 RNG,使用减少采样来制作它与鞋子的大小一致,再加上适当的 Fisher-Yates 重新洗牌,当剩余大约 15% 的牌时,可以正确模拟实际的赌场练习。我猜只有不到 10% 的软件二十一点游戏能够正确地做到这一点。

标签: random cryptography shuffle blackjack gambling


【解决方案1】:

这在很大程度上取决于谁是游戏的制造商以及他们使用哪种编程语言。想象一下,每次您创建新的卡片组对象时。即使在这种情况下,您也需要对它们进行洗牌。好的洗牌算法非常重要,如果制造商足够熟练,它会使用像this one这样的算法:

var rand = new Random();
for (int i = cards.Length - 1; i > 0; i--) {
    int n = rand.Next(i + 1);
    int temp = cards[i];
    cards[i] = cards[n];
    cards[n] = temp;
}

【讨论】:

    猜你喜欢
    • 2020-06-18
    • 2023-03-21
    • 2020-05-18
    • 1970-01-01
    • 2019-06-03
    • 2011-02-02
    • 2014-10-22
    • 2022-11-12
    • 2011-03-26
    相关资源
    最近更新 更多