数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 881|回复: 8

计算扑克游戏获胜概率

[复制链接]
发表于 2023-12-27 19:11 | 显示全部楼层 |阅读模式
【洗牌阶段】
52 张纸牌(无大小王),随机均匀洗牌后分为 13 堆(每堆 4 张),每堆依次编号为 A,2,3, ...... ,J,Q,K;

【游戏过程】
游戏每次都是从第 K 堆开始抽取第 1 张牌;
从第 2 张开始,则按前一张抽出的牌面点数所对应的那一堆中取牌;

举例:比如从第 K 堆取出的第 1 张牌是 5 点(忽略花色),则第 2 张牌就从第 5 堆里抽取,余类推。

【胜负判定】
游戏过程中,当试图从空堆中抽取牌时,游戏终止并判负;
如果 52 张牌被全部取出(没有发生取空堆),游戏获胜。

——计算游戏获胜概率。
发表于 2023-12-28 16:08 | 显示全部楼层
用计算机比较好做。当作一个NP问题搞简单点,不用费力去化简为P问题。
给定一个分组,比较容易判断是否能取胜。然后遍历所有可能组合(组合数量小于52!),即可算出。
回复 支持 反对

使用道具 举报

发表于 2023-12-28 17:17 | 显示全部楼层
而我 再想递推   
1 假如n*4 的失败   结果一定失败 是否  随便替换 这个4n的0~4个 成n-1 换了的放到 n+1堆也一定失败
如果1满足 应该就好递推了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-31 22:43 | 显示全部楼层
本帖最后由 Ysu2008 于 2024-1-1 00:45 编辑

取空堆只能发生在第 K 堆。

游戏开始时,从第 K 堆取走一张牌(第 1 张),第 K 堆相当于只有 3 张牌,但共有 4 张 K 点;
除第 K 堆外,其余各堆都有 4 张牌,都不会出现不够取的情况;
所以,要顺利取出全部 52 张牌,第 4 张 K 点只能在最后一张(第 52 张)取得。

就是说,将顺利取出的 52 张牌,排为一行,最末一张必定为 K 点;

又因为,洗牌是随机的,前 51 张牌被抽取到任意一个位置的概率相等;
所以,前 51 张牌的排列总数为 \(51!\), 4 张 K点都有可能排在最末一位,所以获胜牌型的排列总数为 \(4\times51!\)

假如我们在发生取空堆时,将游戏继续下去(随机选一堆,继续取牌),也将取出的52张牌,排为一行;
52 张牌的全排列总数为 \(52!\),这里面包括了成功牌型的排列和失败牌型的排列;

所以,游戏获胜的概率为 \(\frac{4\times51!}{52!}=\frac{4}{52}=\frac{1}{13}\) .

模拟验证
机器模拟玩这个游戏 1 千万次,获胜次数为 768886 次,获胜概率约 \(0.0768886\ \approx\frac{1}{13}\) .
回复 支持 反对

使用道具 举报

发表于 2024-1-1 01:10 | 显示全部楼层
是计算机模拟结果是0.076吧?
你那个理论分析是没有逻辑的,结果可能是对的,但答案是凑的,因为理论分析没有逻辑。
最后一张为K,也不能保证成功。全集也不是52!。难道是负负为正,推导出正确结果?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-1 01:26 | 显示全部楼层
cgl_74 发表于 2024-1-1 01:10
是计算机模拟结果是0.076吧?
你那个理论分析是没有逻辑的,结果可能是对的,但答案是凑的,因为理论分析 ...

洗牌时,最后一张是 K 确实不能保证成功(比如 4 张 2 全在第 2 堆);
但成功取出 52 张牌的所有牌型,最后一张必为 K;
假如 4 张 2 全在第 2 堆,或者别的什么状况,必然发生 K 堆不够取。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-1 01:55 | 显示全部楼层
cgl_74 发表于 2024-1-1 01:10
是计算机模拟结果是0.076吧?
你那个理论分析是没有逻辑的,结果可能是对的,但答案是凑的,因为理论分析 ...

我也觉着我那分析部分捋得不够通透,大家一块儿想想,怎么捋通透。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-1 20:52 | 显示全部楼层
本帖最后由 Ysu2008 于 2024-1-2 00:27 编辑

不考虑洗牌后的牌型,只考虑抽牌后的牌型。

如果发生取空堆,则随机另选一堆继续取牌,直到取出全部 52 张牌;
将 52 张牌排成一行,牌型总数有 52! 种,包括成功的牌型和失败的牌型;

根据我们前面4#的分析,成功的牌型必然以 K 结尾,反过来说:以 K 结尾的牌型必然是成功的牌型——同样成立。

因为,取空堆只可能发生在第 K 堆,如果最后一张取到的是 K ,则说明第 K 堆没有发生取空堆,其余各堆不会发生取空堆;那么,以 K 结尾的牌型必然是成功的牌型。

以 K 结尾的牌型总数 \(4\times51!\) 种,获胜概率为 \(\frac{4\times51!}{52!}=\frac{4}{52}=\frac{1}{13}\) .

——似乎没啥BUG 。
回复 支持 反对

使用道具 举报

发表于 2024-1-1 23:30 | 显示全部楼层
我找到了这题的严谨证明:
一、发牌的总数:把不同点和不同花色的次序不同都认为是不同的发牌;那么发牌的总数为52!种;且每种几率均等。
二、下面的关键是,找出成功的发牌的次序种数。
1、任何一个成功的发牌序列,经过成功抽牌后,形成唯一的一个抽牌次序;而且此时最后一张抽牌必定为k
2、任何一个以k结束的抽牌次序(或者直接说任何一个以k结束的52张牌的排序序列),唯一对应一个发牌序列,且此发牌序列是成功的。通过构造证明,证明过程见下图片简单说明。
3、通过一一映射,那么发牌成功的种数,就等于以k结束的抽牌次序。而这个次序就是4*51!(不同花色认为不同)
那么概率就得出来了。

所以,4楼的那种解释是逻辑没讲清楚。什么发生空堆后,另外随机继续取牌的说法是不知所云啊。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-5-15 06:54 , Processed in 0.086914 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表