当前位置: 首页 > news >正文

记录一次由打扑克牌测试国内各家大模型的经历

记录一件事情,感觉挺有意义的,也很有趣。

昨天打扑克牌,由于这把扑克牌少了一张10,就找了一张其它扑克牌里的10补上了,后来又找到了这张10,就又放进来了,但补的10也没去掉,因此共有五张10。三个人打牌,把牌分完,这次居然出现了五张10全到一个人手里的情况,于是想就算一下这个出现的概率是多少。

为了简化问题,还是把牌设置为标准情况:方块、梅花、红桃、黑桃各13张,还有两张王,共54张牌,三人一起玩,每人18张牌,求任意一个人拿到四张K的概率(计算任意一个人同时集齐四张相同的任意数字的牌其实没啥区别)。

心里很清楚,这就是一个高中学过的排列组合问题,但一时竟然不知道如何下手去求解。

最初的想法是四张相同的牌发给三个人,不管发放顺序是什么,总之共有12种分法,其中4/0/0共三种、3/1/0共有六种、2/2/0共有三种,因此四张牌落到同一个人手里的概率是3/(3+6+3)=0.25。但这明显不符合直觉,因为这个概率太大了。

后来就想着写个程序仿真一下,应该叫蒙特卡罗法吧,随机模拟发牌,多发几次,看看概率是多少。写了一个数组,用1到13表示从1到K,用-1和-2表示大王和小王,模拟发一千万次牌,Matlab程序如下:

clear;clc;close all;
puke = [1:13,1:13,1:13,1:13,-1,-2];max_iter = 10000000;
is_ok = 0;
for ii=1:max_iteri_perm = randperm(54);puke_perm = puke(i_perm);for person=1:3bias = (person-1)*18;person_i = puke_perm(1+bias:18+bias);person_s = sort(person_i,'ascend');first4 = person_s(15:18);first4_sum = sum(first4==13);is_ok = is_ok + (first4_sum==4);end
end
disp([num2str(is_ok),'/',num2str(max_iter)])

程序运行结果是有一定的随机性的,但大概得到的概率是0.029左右,为什么呢?

于是想到问了一下大模型。

一是问了手机端的讯飞星火大模型,得到的结果是错的。

二是问了手机端的豆包,得到的结果也是错的。

三是问了PC端百度主页的deepseek-R1最新版、联网搜索(https://chat.baidu.com/)然后就一直在思索,直接不出结果。

四是问了PC端的deepseek官网(未勾选深度思考(R1)和联网搜索),得到了结果为20/689,约为0.029;勾选深度思考(R1)和联网搜索后也可以得到一样的结果。

五是问了PC端百度主页的deepseek-V3最新版、联网搜索,可以得到正确结果;切换为文心4.5也可以得到正确结果。

六是问了PC端讯飞星火(勾选了深度推理(X1)和联网搜索),也得到了正确结果。

七是问了PC端纳米AI搜索,使用默认设置:深度思考(DeepSeek-R1-联网满血版 671B),未得到正确结果。

八是问了PC端通义大模型,试了三次,分别勾选了不同的配置(深度思考、分析研究等,具体记不清了),只有一次得到了正确结果。

这个问题其实现在看来也很简单,概率为:

P = 3*C(50, 14)/C(54, 18)

其中,C(54, 18)为从54张牌中随机取18张牌的所有可能情况数目,而C(50, 14)表示固定四张牌(比如四张K)之后,再从剩余50张牌中随机取14张牌的所有可能情况数目,因为不限定哪个人拿到四张K,因此要乘以3。把排列组合公式带进去,这个概率就是3*18*17*16*15/54/53/52/51,化简后就是20/689。

其实有些出错的大模型,它们的结果只差那么一点点,有些看起来分析过程是对的,但在计算时出错了,有的是没有乘以3,也可能是我的问题有歧义。

这次有个收获是deepseek官网和各家部署的deepseek在性能上还是有些许差异的~

最后,我还想说的是,可以基于概率论去计算一下,打扑克牌时,其实每次发完牌后,这种分发结果出现的概率都是很小的,从概率上来讲都可以认为是小概率事件。一般认为,小概率事件是不可能发生的,但实际上小概率事件每时每刻都在发生着,因此生活的每个时刻都是独一无二的,无数的机缘才有了“现在”,所以珍惜每一天、每一刻吧,它们基本都是不可能再复现的:

Yesterday is history, tomorrow is a mystery, but today is a gift.

加油!

http://www.lqws.cn/news/79219.html

相关文章:

  • 2025年5月24日系统架构设计师考试题目回顾
  • 使用 OpenCV (C++) 进行人脸边缘提取
  • 大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森林 Bagging Boosting
  • shiro使用详解
  • Java后端优化:对象池模式解决高频ObjectMapper实例化问题及性能影响
  • 链式前向星图解
  • 【C++高级主题】转换与多个基类
  • InlineHook的原理与做法
  • 【TMS570LC4357】之相关驱动开发学习记录1
  • Python-matplotlib库画不规则图
  • 【CVE-2025-4123】Grafana完整分析SSRF和从xss到帐户接管
  • Hadoop学习笔记
  • Docker 与 Harbor 私有仓库:镜像管理与版本控制的完整实践
  • Google机器学习实践指南(TensorFlow六大优化器)
  • 结构化控制语言(SCL) 与梯形图(LAD)相互转换的步骤指南
  • LabVIEW轴角编码器自动检测
  • 【数据分析】第四章 pandas简介(1)
  • Haproxy搭建web群集
  • 【Java Web】6.登入认证
  • YOLOV7改进之融合深浅下采样模块(DSD Module)和轻量特征融合模块(LFI Module)
  • NodeJS全栈WEB3面试题——P5全栈集成与 DApp 构建
  • Codeforces Round 1028 (Div. 2)(A-D)
  • MyBatisPlus--条件构造器及自定义SQL详解
  • Day43 Python打卡训练营
  • 人工智能工程技术专业 和 其他信息技术专业 有哪些关联性?
  • Sui 中文社区月度激励计划
  • LearnOpenGL-笔记-其十三
  • uniApp页面交互
  • 【算法设计与分析】实验——二维0-1背包问题(算法分析题:算法思路),独立任务最优调度问题(算法实现题:实验过程,描述,小结)
  • 杂散的处理