惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
L
LINUX DO - 最新话题
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
L
Lohrmann on Cybersecurity
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy & Cybersecurity Law Blog
K
Kaspersky official blog
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
Scott Helme
Scott Helme
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Visual Studio Blog
O
OpenAI News
AI
AI
Hacker News: Ask HN
Hacker News: Ask HN
V2EX - 技术
V2EX - 技术
GbyAI
GbyAI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Simon Willison's Weblog
Simon Willison's Weblog
S
Schneier on Security
Spread Privacy
Spread Privacy
Y
Y Combinator Blog
I
InfoQ
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
T
The Blog of Author Tim Ferriss
C
Check Point Blog
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
N
News and Events Feed by Topic
Project Zero
Project Zero
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog
G
Google Developers Blog

RSS feed of yihong0618's gitblog

不要自动化你的情感链接 · Issue #343 · yihong0618/gitblog 那些幸福的瞬间 · Issue #342 · yihong0618/gitblog 12 年过去了,你过得还好么? · Issue #341 · yihong0618/gitblog Be a human, not a claw. · Issue #339 · yihong0618/gitblog 新年快乐以及一些近况 · Issue #338 · yihong0618/gitblog 偶得的佳句与 AI · Issue #337 · yihong0618/gitblog 确定性的丧失 · Issue #336 · yihong0618/gitblog Something Boring or Interesting · Issue #335 · yihong0618/gitblog 2025 年我提了 500 个 Pull Requests · Issue #334 · yihong0618/gitblog 网友 · Issue #333 · yihong0618/gitblog 如何判断一个项目是个好的开源项目并且想贡献? · Issue #331 · yihong0618/gitblog Things I don’t like · Issue #329 · yihong0618/gitblog Notes on Pycon2025 · Issue #327 · yihong0618/gitblog 从错误中学习 · Issue #326 · yihong0618/gitblog 一次艰难的 cpython issue 排查过程,以及我学到了什么 · Issue #325 · yihong0618/gitblog 八月 · Issue #324 · yihong0618/gitblog 从给 Greptime 贡献代码的过程中,我都学到了什么 · Issue #320 · yihong0618/gitblog Notes on May · Issue #318 · yihong0618/gitblog Things I like · Issue #311 · yihong0618/gitblog 我的 35 岁 · Issue #309 · yihong0618/gitblog 连续跑了 365 天 · Issue #306 · yihong0618/gitblog 最近给开源项目贡献的记录 · Issue #304 · yihong0618/gitblog 2020-2025 最喜欢的 12 篇文章和一张图 · Issue #302 · yihong0618/gitblog 断章 · Issue #301 · yihong0618/gitblog 这两个月 · Issue #299 · yihong0618/gitblog 从给 RisingWave 提 PR 说起,聊聊怎么快速切入一个复杂的开源项目 · Issue #296 · yihong0618/gitblog 能几日,又中秋 · Issue #294 · yihong0618/gitblog 第一次 AI 尝试,完全用 AI(MarsCode) 做个需求 · Issue #293 · yihong0618/gitblog 一件趣事儿 · Issue #292 · yihong0618/gitblog 这玩意不是就__ · Issue #291 · yihong0618/gitblog 六月 · Issue #290 · yihong0618/gitblog 跑了 10000km 花了 13 年 · Issue #289 · yihong0618/gitblog 抉择 · Issue #287 · yihong0618/gitblog 三月 · Issue #283 · yihong0618/gitblog About Me · Issue #282 · yihong0618/gitblog 用小爱加手指机器人实现传统开关语音关灯 · Issue #281 · yihong0618/gitblog 记忆碎片 · Issue #280 · yihong0618/gitblog 开源值得么? · Issue #279 · yihong0618/gitblog 聊聊读书 · Issue #275 · yihong0618/gitblog 旧文,移动端最好的游戏,《Dream Quest》以及其它 · Issue #274 · yihong0618/gitblog 微信好友 · Issue #272 · yihong0618/gitblog 如何写一个 PostgreSQL Extension · Issue #270 · yihong0618/gitblog 五月病 · Issue #268 · yihong0618/gitblog 杂感 · Issue #262 · yihong0618/gitblog vm.overcommit_memory 学习笔记 · Issue #261 · yihong0618/gitblog 开源四年的一些记录 · Issue #259 · yihong0618/gitblog 不用 root 使用小爱同学和 ChatGPT 交互折腾记 · Issue #258 · yihong0618/gitblog 用 eBPF trace PostgreSQL 的几种姿势 · Issue #257 · yihong0618/gitblog 2022 失落的一年 · Issue #255 · yihong0618/gitblog 写诗吧 · Issue #254 · yihong0618/gitblog 利用 GitHubPoster 和 GitHub Actions 备份任意用户推特 · Issue #252 · yihong0618/gitblog 一杯敬月光 · Issue #251 · yihong0618/gitblog 如何判断一个数字帐号来自中国大陆 · Issue #248 · yihong0618/gitblog Random Thoughts · Issue #242 · yihong0618/gitblog 反思 · Issue #241 · yihong0618/gitblog 今天的跑步电台 · Issue #239 · yihong0618/gitblog LeetCode 是如何运行的--测试篇 · Issue #237 · yihong0618/gitblog 新冠纪元 · Issue #235 · yihong0618/gitblog Postgres 需要学的东西 · Issue #234 · yihong0618/gitblog Postgres 中 GUC 的一些记录 · Issue #233 · yihong0618/gitblog 运交华盖欲何求 · Issue #231 · yihong0618/gitblog 年终岁尾 · Issue #230 · yihong0618/gitblog 二零二二的三个小目标 · Issue #229 · yihong0618/gitblog 经历了人生体验最棒的一次面试 · Issue #228 · yihong0618/gitblog 参加了《开源面对面》《ByteTalk》《枫言枫语》播客的一些记录 · Issue #223 · yihong0618/gitblog 有趣与无趣 · Issue #221 · yihong0618/gitblog running_page 开源一周年的总结 · Issue #220 · yihong0618/gitblog 接下来要写的东西 · Issue #219 · yihong0618/gitblog 一点思考 · Issue #218 · yihong0618/gitblog 友情链接 · Issue #217 · yihong0618/gitblog 朋友圈 · Issue #216 · yihong0618/gitblog 张小龙的饭否 · Issue #215 · yihong0618/gitblog 一件小事 · Issue #214 · yihong0618/gitblog 从 Rich 作者的一个问题说起 · Issue #212 · yihong0618/gitblog 如何用一个仓库记录自己的一年 · Issue #209 · yihong0618/gitblog 逃离 · Issue #208 · yihong0618/gitblog 近况 · Issue #207 · yihong0618/gitblog 年过完了 · Issue #206 · yihong0618/gitblog 力扣的程序是如何运行的 · Issue #205 · yihong0618/gitblog 生存守则 · Issue #204 · yihong0618/gitblog 沮丧 · Issue #203 · yihong0618/gitblog 今年的三个小目标 · Issue #202 · yihong0618/gitblog 新年碎碎念 · Issue #201 · yihong0618/gitblog 二零二一开始 · Issue #200 · yihong0618/gitblog 记住这一刻 · Issue #199 · yihong0618/gitblog 巧妙利用 iOS 的快捷指令配合 GitHub Actions 实现自动化 · Issue #198 · yihong0618/gitblog 如何获取悦跑圈数据 · Issue #197 · yihong0618/gitblog 生的对立面 · Issue #196 · yihong0618/gitblog 推荐一些我一直关注的觉得不错的和 Python 相关的独立博客 · Issue #195 · yihong0618/gitblog 2020 年 10 月总结 11 月计划 · Issue #194 · yihong0618/gitblog 写在 0x20 岁之前 · Issue #193 · yihong0618/gitblog 如何获取 keep 跑步数据 · Issue #191 · yihong0618/gitblog 2020 年 9 月总结 10 月计划 · Issue #190 · yihong0618/gitblog 决定把gitblog和kb结合起来 · Issue #189 · yihong0618/gitblog 感冒了,真是难受 · Issue #188 · yihong0618/gitblog 把running page 变得通用必须提上日程了 · Issue #187 · yihong0618/gitblog 我转行程序员的经历 · Issue #186 · yihong0618/gitblog 普通人和天才之间的巨大鸿沟 · Issue #185 · yihong0618/gitblog 月跑 250 km计划 · Issue #184 · yihong0618/gitblog 2020年八月总结九月月展望 · Issue #182 · yihong0618/gitblog
12 月,姥姥,以及大模型 · Issue #344 · yihong0618/gitblog
yihong0618 · 2026-07-08 · via RSS feed of yihong0618's gitblog

这些天会想起姥姥,姥姥已经离开我 10 多年了,虽然她的形象渐渐模糊,但总记得她对我的好,和带我长大的一些瞬间。还能想起那时候父母工作忙,我在姥姥家生活了一年。

姥姥每年过年都会摆一个扑克,这个扑克叫 12 月,来预测一年的运势。规则倒是不难,还没上学的我也能很快的学会,也每年跟着摆起来,模糊的印象里好像我还摆开过几年。

12 月的规则是这样的:

玩法是先把扑克 54 张牌中的两个王、四个K去掉,然后把剩余的 48 张牌洗牌后分成背面向上的十二叠,每叠四张,这十二叠分别代表未来一年的十二个月。接下来,抽出第一叠最底下的一张牌并翻开,按照牌上面的数字放到相应月份的那叠牌上方,比如数字是 2,就放到第二叠代表 2 月的牌最上方;数字是 J,就放到第十一叠代表 11 月的牌最上方,然后把放牌的那叠牌最底部的一张牌抽出并翻开,同样地按照数字放到相应月份的牌上。这样一直下去,直到四张 A 全部翻出,一局游戏就停止了。如果四张 A 翻出时候其余的牌也全部翻出,那么就说明这局赢了,这一年都会伴随着好运,当然没全部翻出也不算输,这一年总有几个月翻开的,那几个月我会迎接好运。

等到自己上初高中,懂了一点点概率知识,我也曾经好奇过,摆开 12 月的概率会是多少呢,当然只是过年摆 12 月时候的一闪念,摆完之后也没像其它那些知名的数学家一样,去真正的算这个概率。

后来,我会写了程序,也有了娃,娃也开始每年过年能自己去摆 12 月,娃第一次自己摆开 12 月。
我还能清楚的记得我的好奇,我坐着沙发上盯着小孩摆 12 月,头脑里想着,也许我可以用不同的 seed 写个模拟,去跑个 100 万次,然后就知道了大概的概率。不过还是只有过年我们才会玩这个游戏,一般转身就忘了这件事,去忙过年该有的,其它的活动了。

直到今天,我又想起了这件事。但今天不太一样,今天有了大模型,今天的大模型解决这种问题几乎只需要一个 prompt. 于是我打开了 codex app 把这个贯穿了我 30 年 3 代人的困惑输入了进去。

Image

什么?1/12 之一,为什么如此 simple, 为什么?当然下面的解释我看明白了,也有点遗憾,我会写程序会用模拟的时候就大概能得出这个结论,但是这个结论晚了好多年,上一次这种疑问还是来自我第一次知道残差去查这个牛逼的残差是什么,然后也是这种感觉,竟然如此的 simple.

下面是 GPT 5.5 codex 的解释

#48 张牌里,1 到 Q 共 12 种点数,每种 4 张。
#除了第 1 组,别的组不会提前“抽爆”。比如第 3 组:只有翻到 3 才会去抽第 3 组,而整副牌只有 4 张 3,最多只会要求抽第 3 组 4 次,刚好够。
#第 1 组特殊,因为游戏一开始就已经先抽了第 1 组一次。之后每翻到一张 1,又会回第 1 组。翻到第 4 张 1 后,就会要求第 5 次抽第 1 组,于是停局。
#所以游戏是否成功,等价于:第 4 张 1 是不是整副 48 张里最后被翻出来的牌。这又等价于:最后一张牌是不是 1。
from fractions import Fraction
from math import comb
import random

RANKS = 12
COPIES = 4
TOTAL = RANKS * COPIES

exact = Fraction(comb(TOTAL - 1, COPIES - 1), comb(TOTAL, COPIES))
print(exact, float(exact), f"{float(exact) * 100:.6f}%")

def play_once(rng):
    deck = [rank for rank in range(1, RANKS + 1) for _ in range(COPIES)]
    rng.shuffle(deck)

    piles = [deck[i * COPIES:(i + 1) * COPIES] for i in range(RANKS)]

    current = 1
    revealed = 0
    while piles[current - 1]:
        card = piles[current - 1].pop()
        revealed += 1
        current = card

    return revealed == TOTAL

rng = random.Random(20260708)
trials = 500_000
wins = sum(play_once(rng) for _ in range(trials))

print(wins / trials, f"{wins / trials * 100:.6f}%")

当然我后面有很多追问,我都问了这些问题。

  • 那么如果成功了 6 个月的概率呢?成功了 7 个月的呢?
  • N 等于 1 -12 每个的概率
  • 对么?特别反直觉,正好一个月成功肯定不是 8.33333%从我的经验看,我玩了无数把没有一次只成功了一个月
  • 能动画的模拟吗??
  • ok 有办法帮我找找网络上还有其他人研究过这个问题吗?

Image

最后一个问题答案很有趣:

最后的最后:

  • 感谢大模型解决了我的困惑,还让我学到了不少东西。
  • 但是它没解决我对姥姥的想念。
  • 今年过年再玩这个游戏,我可以把这个概率的故事分享给我儿子,他才 3 年级不一定能理解,但是 10 年后他也会想念起春节爸爸和他的关于这个概率的对话吧?