自相矛盾?让最利的矛去扎最硬的盾

46万
120
2026-11-08 07:00:00
含AI生成内容
9054
73
1558
48
楚人卖矛又卖盾,夸矛「什么都扎得穿」,夸盾「什么都扎不穿」。有人问:拿你的矛扎你的盾,会怎样?最利的矛撞最硬的盾,谁赢?这回我们让代码真撞一次。 先定一条碰撞规则(这条规则是我们自己定的,不是物理定律):每个字块有「锋」和「坚」两个数,相撞时穿透 = 攻方的锋 − 守方的坚,大于 0 就扎穿,小于等于 0 就挡住。 第一回合试矛。锋 100 的矛扎穿了纸(坚 1)、木(坚 10)、石(坚 50),扎不穿铁(坚 500);锋加到 1000,铁穿了,钢(坚 5000)又挡住。总有更硬的东西,要做到「无不陷」,锋只能是无穷大。 第二回合试盾。坚 100 的盾挡住了箭(锋 20)和刀(锋 80),被斧(锋 300)劈碎。要做到「莫能陷」,坚也只能是无穷大。 第三回合,两件都换成无穷大:矛一下扎穿一排石、铁、钢,再扎穿一座山;盾挡住连发的箭、刀、斧、炮,再挡住一道雷。两句话单拿出来,都成立。 第四回合让两种说法对撞。只信矛的人,会说盾的坚再大也是个有限的数,片里设成 10 的 99 次方,矛扎穿;只信盾的人,会说矛的锋总有个数,矛被弹回。最后照楚人的原话,两边都是无穷大:程序算「无穷大减无穷大」,得到 NaN,意思是「不是一个数」。这个数一进物理,矛和盾的坐标都成了 NaN,我们的画面程序不画坐标不是数的东西,两个字块就一起没了。 原文出自《韩非子·难一》,据维基文库本:「楚人有鬻楯與矛者,譽之曰:『吾楯之堅,物莫能陷也。』又譽其矛曰:『吾矛之利,於物無不陷也。』或曰:『以子之矛陷子之楯,何如?』其人弗能應也。夫不可陷之楯與無不陷之矛,不可同世而立。」楯同盾。原文先夸盾、后夸矛,片里先演矛。中国哲学书电子化计划本「物莫能陷」作「莫能陷」;同书《难势》篇另有一段文字略有不同的版本。 几处说明: 锋、坚的数值都是示意,纸 1、木 10、山 100 万这些数是我们随手定的,只讲大小顺序,不是材料的真实硬度。碰撞只算水平方向,碎片的飞散和下落是简化的重力模拟。 「无穷大减无穷大得 NaN」是 JavaScript 的真实规定,见 ECMAScript 规范(ECMA-262)6.1.6.1.7 Number::add:「If x is +∞ and y is -∞, return NaN.」减法按 6.1.6.1.8 转成加法。片里屏幕上那一行是程序当场算出来的结果,不是手写的。 NaN 既不大于 0,也不小于等于 0,所以规则里两条路都对不上。 画面由代码逐帧算出,配乐由代码合成(音色库 GeneralUser GS,S. Christian Collins)。 网页小游戏《汉字合体》:B 站里直接玩 https://www.bilibili.com/toy/hanzi-heti/index.html ;浏览器打开 https://hanzi.sealosbja.site
汉字游戏
(18/21)
214.8万播放
简介
【物理模拟】同类汉字撞在一起会合体,三条龍最后变成了什么?
00:31
三只手叠在一起念啥?从森到掱,10个三叠字
01:15
四个火叫燚,那四个龍叫什么?
00:24
三个雷叠在一起念啥?从磊到靐,10个三叠字
01:16
把「沉」和「浮」一起丢进水里
00:53
两个火竖着撞是炎,那横着撞会变成什么?
00:24
磁铁一开,金字旁的都会被吸走吗?
00:40
「卡」是上下两半,让它往下掉一次
00:44
真金不怕火炼?把「金」「铁」「纸」一起丢进火里
00:47
把汉字丢进液氮,谁会长出三点水?
00:43
卅拖长一笔,就是你天天写的那个字
01:03
干「盐」不导电,纯「水」也不导电,倒在一起呢?
01:04
两个王中间落一刀,为什么成了上班的「班」?
01:02
把「铜」化成铜水,它会变成「洞」吗?
01:04
一山不容二虎?把两只「虎」丢进一座山
00:31
鱼羊为鲜?把三条鱼、三头牛、三只羊丢进一口锅|汉字游戏·第17期
00:27
水克火,火克金……把五行关进一个擂台,最后谁赢?
00:36
自相矛盾?让最利的矛去扎最硬的盾
01:03
覆水难收?让泼出去的每一滴水原路掉头
01:02
聚沙成塔?把沙塔整座泡进水里,再抽掉模子
01:02
满招损,谦受益?让满罐和空罐飞同一道沟
00:37
客服
顶部
赛事库 课堂 2021拜年纪