博弈论:从棋局到现实决策的策略思维工具
我最早在书架上看《博弈论》这类书时第一反应是这是教人下棋打牌的书吗“博弈”两个字听起来就像棋盘上的事翻了几页才发现完全跑偏了。它不是教你怎么下棋而是在回答一个更底层的问题当我的决定会影响你的决定而你的决定又会反过来影响我的决定时我们该怎么选这门学科从数学里长出来借了“博弈”这个古老的中文词结果名字取得太传神反而让不少人误以为它只在牌桌和棋盘上管用。实际上从商业谈判到市场定价从交通拥堵到相亲选择只要有两个以上的人面对同一件事做选择博弈论就可能派上用场。这篇文章我想把两件事说透第一“博弈论”这名字到底怎么来的为什么偏偏是“博弈”第二它真正研究的是什么学完能给你带来什么。这篇文章适合所有对“策略”“决策”感兴趣的人。不管你是做产品的、搞交易的还是纯粹想弄明白日常沟通里那些“我怎么选”的困境这篇对得起你的时间。1. “博弈”二字的本来面目它不只是“下棋打牌”的代名词1.1 “博”与“弈”一个靠运气一个拼算路先把词拆开看。“博”和“弈”在古代不是一回事。“博”指的是博戏比如汉代很流行的六博掷采行棋运气成分很重手气不好再厉害也算不过骰子。“弈”才是围棋黑白落子没有随机因素纯粹靠计算和判断一着不慎满盘皆输。两千多年前的典籍里就有“不有博弈者乎”这样的句子意思是说就算玩玩棋牌游戏也比整天无所事事强。可见那时候“博弈”就已经是一个固定搭配了它天然包含了两种不同的对抗类型一种讲究随机应变的运气一种讲究全局规划的算力。这个区分放到今天来看恰好对应了博弈论里的两大家族。一类叫“运气型”博弈信息不完全行动结果取决于概率比如扑克牌里的底牌你不知道另一类叫“策略型”博弈信息完全清楚胜负完全由每一步的选择决定比如围棋。想明白这一点你就知道中文用“博弈”来翻译英文的game theory与其说是碰巧不如说是精准。1.2 为什么偏偏是“博弈”而不是“竞策”或“对策论”其实历史上“博弈论”还有过别的译名比如“对策论”。对策这个词听起来更像“针对某个局面的应对方案”但它有个问题只强调了“应对”没强调“相互较劲”。真正的博弈我这一步不仅要考虑眼下形势还要预判你怎么走再预判你对我的预判这是双向的、动态的不是你出招我接招那么简单。表两个候选译名的比较译名强调重点遗漏/不足对策论对特定局面的策略应对弱化了对手和互动的核心地位博弈论对局中的双向策略互动几乎没有明显遗漏至于“竞策论”“斗争论”这类说法更偏对抗性而博弈论里还有大量合作、协调、分蛋糕的场景用一个“斗”字概括就窄了。相比之下“博弈”这个词妙在它既包含了正规的棋局又包含了带运气的游戏既有对抗又有规则既有谋算又有不确定性基本上把这门学科的研究对象一网打尽了。所以现在大家熟悉的“博弈论”是经过一代代译者和学者筛选之后留下的最贴切表达。1.3 从“下棋”到“任何互动决策”词义的扩围有意思的是“博弈”这个词在近代以前基本都是在讲棋牌游戏真正让它跳出棋盘的是博弈论这门学科的传播。当人们发现那些研究六博和围棋的数学模型可以用来解释市场竞争、军备谈判、劳资矛盾甚至一群动物争食的时候“博弈”就成了“策略互动”的代名词。这也是为什么你现在打开财经新闻经常看到“博弈”这个词满天飞。商业上的价格战叫博弈谈判桌上的妥协叫博弈甚至两个人争论叫不叫博弈都算博弈。这种词义的扩围恰恰说明这门学科渗透到了现代生活的方方面面。但它也带来了混淆不是所有竞争都是严格意义上的博弈论研究对象。这个问题我放在第4章细说这里先记住一个判断标准你的最优选择是不是取决于别人怎么选。是才算真正的博弈。2. 拆开“博弈论”的核心命题你的决策里藏着我的决策2.1 博弈的四个基本元素参与人、策略、信息、收益严格意义上的博弈论研究的是“多个决策者之间的策略互动”。听起来抽象拆开其实就四个要素。第一是参与人也就是谁在做决策。可以是一个人也可以是一家公司、一个组织。第二是策略也就是每个参与人有哪些可选的做法。策略不一定是单一动作也可能是“如果对方这样我就那样”的一整套行动方案。第三是信息即你在做选择的那一刻知道多少东西。你知道对方的选项吗你知道对方知道你知道多少吗第四是收益也就是每种结果组合下每个参与人得到的好处或损失。用生活里的场景举个例子。公司里两个部门抢同一笔年度预算参与人是两个部门负责人策略是“争取”“妥协”“联合其他部门”等信息是双方各自知道对方的预算方案到什么程度收益则是谁拿到更多资源。这四个要素一旦定下来博弈的结构就清楚了。2.2 信息完整度与行动顺序为什么围棋、扑克、谈判的模型完全不同很多人以为博弈论是一套统一的公式套哪儿都行其实它内部是分门派的。最影响模型选择的变量有两个信息是完整还是不完整行动是同时还是先后。完全信息博弈比如围棋双方都看得到整个棋盘所有信息摆在明面上所谓“信息”的差异只在于你对局面的理解深度不在于你知不知道对方有哪步棋可走。不完全信息博弈比如扑克牌就差了很多对方手里什么牌你不知道他虚张声势时你也不知道他是真有牌还是在诈你。行动顺序同样关键。同时行动是“我不知道你这轮怎么走你也不知道我这轮怎么走但我们同时出手”典型的就是猜拳。先后行动则是我先走你看到我的选择之后再回应这种博弈可以用倒推的方式分析。谈判通常就是先后行动的复杂叠加我开出条件你看过之后还价我再调整每一轮都携带更多信息。表不同博弈类型与典型场景类型信息特点行动顺序代表性场景完全信息静态博弈双方信息透明同时行动猜拳、竞价投标完全信息动态博弈双方信息透明先后行动围棋、象棋、商业谈判不完全信息静态博弈一方或双方有私人信息同时行动拍卖、初次见面谈判不完全信息动态博弈私人信息会在行动中暴露先后行动扑克牌、人才招聘面试2.3 从一盘棋到一个公式博弈的标准式写法一套模型要能分析就得把上面这些要素用规范方式记录下来。最简单也最常用的表达叫“标准式”你可以把它理解成一张收益表。比如一个两人博弈参与人A有“左”“右”两个策略参与人B有“上”“下”两个策略。表格里的每一格写两个数字左边是A的收益右边是B的收益。博弈论干的事就是在这张表上找答案如果每个人都在追求自己的收益那最终会停在哪一格理论的严谨性也体现在这里。研究一个博弈不能只拍脑袋说“我觉得他会选这个”而要给出可以推导、可以被质疑的结论。这也是博弈论和日常“谋略”最本质的区别。诸葛亮式的锦囊妙计当然精彩但博弈论要的是被数学证明过的平衡结果而不是无法复现的个人智慧。我后文会专门讲“均衡”这个概念它是整个学科最核心的工具。3. 用三个经典模型理解“策略互动”的运作方式3.1 囚徒困境个体理性怎么导致集体不理性讲博弈论必提囚徒困境因为这个例子一句话就能说明白却折磨了无数聪明人。假设两个人因为一桩案件被分开审问警方给出规则如果你揭发对方他沉默你立刻被释放他吃重刑如果你们都沉默各自吃轻微处罚如果你们都揭发各自吃中等处罚。问题是两人都无法确认对方会怎么选。从单个人的角度看揭发似乎是占优策略如果对方沉默你揭发就获释比沉默更划算如果对方揭发你揭发至少不会比对方沉默更惨。于是两个理性的人都会选择揭发结果双双吃了中等处罚而明明“两人都沉默”对双方整体更好。个体最优选择叠加出集体最差结果。这个模型的震撼之处在于它完全不需要任何坏人或者计谋两个人都是理性的、自利的、按正常思维做选择就必然会滑入不满意的结局。现实里的价格战、军备竞赛、环境公地悲剧都有囚徒困境的影子。我想强调的是囚徒困境的核心不是“互不信任”而是“缺乏协调机制”。如果能建立沟通、契约或长期关系情况就可能改变这就引出了后面两个模型。3.2 协调博弈与懦夫博弈对手也有合作空间囚徒困境总让人以为博弈论就是研究“怎么害别人”这是很大的误解。很多博弈中参与人的利益是有一致性的问题只在于怎么协调到那个共同想要的点。比如定一个行业标准、约定一个碰面时间双方都想达成一致只是可能有多个一致点可以选择。这种博弈叫协调博弈难点不是“要不要合作”而是“怎么让对方知道我知道你知道我们要合作”。懦夫博弈则更好玩。它描述的是两方相向而行谁先闪开谁就输的场景。双方都希望对方先让步但如果都不让就撞个两败俱伤。两个都不理性地硬撑结果的实际收益可能是最差的。商业里互相压价、娱乐圈抢首发时间都是典型的懦夫博弈。这两种模型告诉我一个道理博弈的结局不由“谁更狠”决定而由收益结构决定。在囚徒困境里合作双方能获得最佳总收益在懦夫博弈里率先让步的一方实际损失可能更小。博弈论不鼓励你当莽夫它教你计算收益而不是凭感觉估价。3.3 重复博弈为什么“以后还要见”改变了一切单次博弈和重复博弈是两码事。一锤子买卖可以骗了就跑熟人生意却要考虑“以后还要见面”。把经典模型反复玩很多轮就会出现新的逻辑你这一次背叛可能获得短期收益但下一次对方就不再信任长期损失比短期收益大得多。这就解释了为什么商业声誉、社会口碑这么值钱。在无限次重复博弈里合作是可以稳定出现的因为双方都有能力惩罚对方的背叛。对个人来说这也是博弈论非常实用的一个结论如果你想在长期关系里获得好处建立“以牙还牙”式的可预测反应比一味当老好人或者一味强硬都更有效。顺便说一句这也是我在实际应用中最喜欢的一个模型。因为生活里大多数博弈都不是只玩一次你追一个项目、维护一个客户、经营一段感情都会重复接触。把“以后还要见面”这个变量考虑进去很多看似短期的聪明选择其实都是蠢选择。博弈论的价值就在于把这些看不见的代价清晰地摆到你面前。4. 博弈论的边界理性人假设失灵时模型还管用吗4.1 现实中的“不理性”行为博弈论告诉我们的偏差传统博弈论有一个基本假设参与人是完全理性的总能选出最大化收益的策略。严格说这是一个数学理论必需的理想化前提就像物理学里假设没有摩擦一样。但现实里的人不是这样的。人会受情绪影响会担心不公平会报复不合理的对待哪怕报复自己也有损失。行为博弈论就研究这些看上去“不理性”的行为。实验发现在一个叫“最后通牒博弈”的游戏里一个人分一笔钱给另一个人如果对方拒绝两个人谁都拿不到。按纯粹理性看对方拿到哪怕1块钱也会接受但现实中很多人宁可玉石俱焚也不接受低数额分配。这说明公平感、自尊、情绪都会成为实际决策的约束条件。这给我的启示是用博弈论做决策你要区分“模型里的最佳策略”和“现实里行得通的最佳策略”。模型帮你找到理性路径但现实执行时你得把情感因素和别人的非理性当作参数加进去。一个精确的模型加一个模模糊糊的现实比一个模模糊糊的模型加一个精确的现实要可靠得多。4.2 生活里的博弈场景拍卖、价格战、抢预约名额博弈论离生活没有想象中远。拿拍卖举例英式拍卖从低价往高价喊每个人都有自己愿意出的最高价随着价格抬高最想买的人通常会留下但真正支付的价格可能落在第二高心理价位附近。这和博弈论的“赢者诅咒”也有关系你赢了往往说明你出价高过了所有人甚至可能高过真实价值。价格战更是典型的博弈。两家店抢客流不断降价对方跟不跟不跟就失去市场跟了就两头受损。学过博弈论的人会明白价格战一旦进入互耗状态双方都难退出因为谁先涨价谁就丢市场。这种时候谈判形成价格默契、差异化竞争反而可能比死磕降价更有收益。抢票、抢预约、抢限量名额也处处是博弈。表面上拼手速实际拼的是你对“别人什么时候会抢”的判断。有些平台会公布余票更新规则你能做的就是调整策略避开大多数人同时点击的高峰窗口。日常的这些场景不需要你算完整的数学模型但需要你建立“策略意识”。4.3 什么时候该用博弈论什么时候只把它当思考框架我必须泼一点冷水博弈论不是万能钥匙。它的分析前提很苛刻需要参与人理性、收益可量化、规则明确。现实里很多决策参与人不知道自己想要什么收益无法量化规则随时在变甚至参与人自己也说不清楚自己有哪些可选策略。这种情况硬套模型会给你一种虚假的精确感。我个人建议把博弈论当思考框架而不是算卦工具。遇到一个局面先问自己几个问题谁是参与人他们有什么可选策略他们各自掌握什么信息每种结果的收益是什么这几个问题本身就能帮你把一团乱麻捋清楚。就算最终没有精确数字你也比没有框架的人多了结构性认识。真正要拿模型精确计算出最优解的场景通常是规则清晰、收益可衡量的商业谈判或者价格决策。5. 从棋局到现实博弈论给了我们什么样的思维工具5.1 “向前看两步向后倒推”的决策习惯博弈论最值钱的思维工具之一是倒推法。在一段连续互动的博弈里你要从最后一个节点开始想如果走到最后一步我会怎么选对方又会怎么选想清楚最后一步再往前推一步看自己在这个节点应该怎么选。用这种方式做决策你会发现很多“当下最爽”的选择根本经不起推敲。最经典的例子是下棋。新手只看当前局面的杀棋老手则从几十步开外的终局往回算。商业谈判也是不要只看这轮开出什么条件要想这个条件会如何影响下一轮、第三轮的态势。我自己做事前会花几分钟写下如果我现在做了这个决定一个月之后会怎样对方会作何反应我再如何应对这套倒推练习帮我避过很多短期冲动。5.2 信息的价值很多博弈的胜负在开局就已决定博弈论对信息的重视远超普通人想象。在我能完全掌握你信息的情况下哪怕我实力略逊也可以通过调整策略获得优势。反过来如果关键信息被对方藏住即便我资源更多也可能处处被动。信息就是博弈里的杠杆。这带来的实操建议很简单做决策前先做信息盘点——我需要知道什么对方会知道什么哪些信息我能合法地获取然后尽量消除自己这边的信息盲区。在多人博弈里你甚至可以通过“主动暴露”信息来改变结局。比如在谈判中主动公开自己的底线反而可能让对方相信你“没有更多让价空间”。5.3 把“博弈思维”变成肌肉记忆学了那么多模型最重要的不是背概念而是把“策略思维”变成肌肉记忆。遇到冲突别急着站队或表态先问对方有什么可选策略他的收益结构是什么我的哪些行为会改变他的收益结构一旦开始这样想你会发现很多冲突并没有想象中那么无解。拿最常见的职场冲突来说两个人争一个晋升名额表面上是零和博弈。但如果把收益结构放宽比如一方主动让出本次、换取下次的机会或者两人合作各自争取不同方向的位置零和就变成正和。博弈论里的“混合动机”视角会强制你审视收益结构里的每一种可能性这正是它作为思考工具的价值所在。我在实际使用中还有一个体会不要迷恋“最优解”要追求“够好解”。现实世界的信息和理性都有限建模再精细也只能接近真实。拿到一个均衡结果就以为稳赢是新手常犯的错。成年人的博弈更像摸黑走夜路博弈论能给你的是一张地形图但最终每一步怎么踩还得靠你对现实的感觉。这套思维工具值得反复在生活里练练到条件反射一样自然才算真正入了门。

相关新闻

WSL2 GPU直通实战:在Windows上搭建深度学习与大模型微调环境

WSL2 GPU直通实战:在Windows上搭建深度学习与大模型微调环境

做 AI 开发,环境折腾永远是逃不掉的课题。以前我在 Windows 上跑深度学习,常用方案各有各的别扭:双系统切换要重启,传统虚拟机里 GPU 基本是摆设,Docker Desktop 又总在资源隔离上出问题。后来把 WSL2 这套组合拳打顺了…

2026/10/14 14:36:51 阅读更多 →
图文兼容的PDF知识库RAG:PyMuPDF+Qwen-VL让图表信息可检索

图文兼容的PDF知识库RAG:PyMuPDF+Qwen-VL让图表信息可检索

做PDF知识库问答的时候,你有没有遇到过这种情况:用户的问题答案明明就在文档里,可检索系统就是答不上来。我最近在一个产品手册问答项目里踩了个大坑——手册第14页画了一张散热孔位置示意图,图里清清楚楚标着Type-C接口、LED灯条…

2026/10/14 14:36:51 阅读更多 →
高职机器视觉课程实践体系:从OpenCV基础到工业检测项目全流程设计

高职机器视觉课程实践体系:从OpenCV基础到工业检测项目全流程设计

1. 高专院校机器视觉课程为什么要单独搭一套实践体系我在这几年带高专院校的机器视觉课程,最直观的感受是:教材好找,案例好找,但真正能落到课堂上、让高职学生动手做出来的实践体系,不太好找。市面上的机器视觉教材大多…

2026/10/14 14:36:51 阅读更多 →

最新新闻

M4A转MP3批量转换工具:FFmpeg参数调优与避坑指南

M4A转MP3批量转换工具:FFmpeg参数调优与避坑指南

简介:这是一款面向音频爱好者与日常办公用户的M4A转MP3格式转换工具,主要解决M4A文件在非Apple设备或较旧播放器上兼容性不足的问题,让音乐库能在更多终端顺畅播放。压缩包共2个文件,包含1个exe可执行程序与1个htm说明文档&#x…

2026/10/14 15:11:59 阅读更多 →
gem-0.2.5-src.zip源码编译指南:从解压到构建的完整流程

gem-0.2.5-src.zip源码编译指南:从解压到构建的完整流程

简介:面向半导体设备与主机通信开发者的JYUGEM开源SEMI SECS协议库源码包,基于ACE框架实现GEM/OBEM模型,支持C和Python双语言调用,可用于SECS消息解析、设备建模与通信调试。压缩包共452个文件,约824KB,以h…

2026/10/14 15:11:59 阅读更多 →
Spring事务管理:原理、实践与优化策略

Spring事务管理:原理、实践与优化策略

1. Spring事务管理基础概念在企业级应用开发中,事务管理是确保数据一致性的核心技术。Spring框架通过声明式事务管理,将我们从复杂的事务API中解放出来。我第一次接触Spring事务是在处理电商订单系统时,当时需要确保库存扣减和订单创建这两个…

2026/10/14 15:11:59 阅读更多 →
从地图到空间智能:高德AI引擎架构与开发者实战全解

从地图到空间智能:高德AI引擎架构与开发者实战全解

几年前我盯着高德地图上的红绿灯倒计时,还以为这不过是个导航App的贴心小功能。直到我参与了一个物流项目的路线规划系统,才真正意识到:那个能推测你几点到家、能预判哪条路更堵的引擎,已经从一张“会更新的照片”变成了一套能理解…

2026/10/14 15:11:59 阅读更多 →
CEF 110 Windows 非官方编译:开启 H.264/AAC 支持本地 MP4 播放

CEF 110 Windows 非官方编译:开启 H.264/AAC 支持本地 MP4 播放

简介:CEF110.0.5481.180 Windows 非官方编译版面向需要在桌面应用中嵌入现代浏览器引擎的开发者,尤其适合构建网页浏览器、媒体中心或在线视频平台等场景。该版本基于 Chromium 110 内核,重点补齐了 MP3 音频、MP4 视频及 H.264 编码支持&…

2026/10/14 15:11:59 阅读更多 →
多模态视觉+云端真机:AI助手从聊天框到实操代理的落地实践

多模态视觉+云端真机:AI助手从聊天框到实操代理的落地实践

1. 从"聊天框套壳"说起:为什么大多数AI助手止步于对话框过去两年,我接触过不下三十个号称"AI助手"的项目,其中绝大多数打开之后就是一个输入框加一个发送按钮,背后调一个通用大模型的API,再套一层…

2026/10/14 15:10:52 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →