总览

「解谜末班车」自壬寅年底(2023)起办,每年一期,定于除夕前两日,为期 36 小时。

本站提供历年谜题解答,以供参考。

壬寅年概览

时间:2023-01-19 20:00:00 至 2023-01-21 08:00:00

这是我第一年出解谜游戏,仓促出了几道题,结果很快就被杀穿了。

第一位通关者是 Midoria7,在游戏开始 104 分钟后通关。

当时我的设想是「可以不择手段地通关(只要别交流答案)」,所以没有设计诸如防跳关、防脚本作答等措施,结果真的有人跳关了(对着 url 扫描然后跳到了 List),也真的有人写脚本撞答案了(Systematic 有人拿脚本从 0 刷到了 400000,但没想到答案是个负数。)。

当时我还没有保留资料的意识,所以很多与此次解谜有关的信息(包括部分题目的内容)都遗失了,还望读者见谅。

门对千棵竹

门对千棵竹

解析

「门对千棵竹」是一则对联,出自相声《解学士》,下联为「家藏万卷书」。

本题的 URL 是 www.cpphusky.xyz/MenDuiQianKeZhu,可以想见,应当把 URL 改成 www.cpphusky.xyz/JiaCangWanJuanShu,这样就可以进入第二关。

家藏万卷书

在本关中,每个玩家每次刷新时,有 的概率刷出两本书——这就意味着可以通关;否则只能刷出一本书,无法通关。

解析

的初始值为 每次增加 。这个概率看起来很低,但只要大家合力刷新,其实很快就可以刷到比较高的值了。

唯独有一点需要注意:不要刷新得太快,把本来可以通关的页面给刷没了。

Systematic

解析

本题是由五个化学元素符号组成的算式,所以要考虑把元素符号转换成序数来计算。

其中前四个符号只需查元素周期表即可得到;但第五个 需要通过系统命名法(Systematic element name)推算得到。于是

Blank

Blck frtlzr wll vltlz whn t s gry; gry frtlzr wll vltlz whn t s blck.

解析

本题基于一个观点:对于有一定英语语感的人来说,仅仅通过辅音字母的部分,就可以还原出整个句子。

所以本题的意图在于让玩家做完形填空,补全缺失的元音字母。(但是因为题目意思不够明显,导致不少人误会)

顺带一提,因为 gray 也可以写作 grey,所以对应位置的 a 换作 e 也是可以的。

答案是:aeiieioaiieeiiaaeiieioaiieeiiaaeiieioaiieeiieeeiieioaiieeiia

Morse

本关提供了一段摩斯电码音频,玩家需要听译得出其中暗含的信息。

解析

直接听译当然是可以的,不过可能好好训练一下自己的耳朵;当然,也可以直接上网找一个摩斯电码译码器,把音频发上去,解得 MMDCLIV

这是一段罗马数字,对应的阿拉伯数字为 2654

List

8 2 1 4 8 0 8 6 5 1 3 2 8 2 3 0 6 6 4 7 0 9 3 8 4 4 6 0 9 5 5 0 5 8 2 2 3 1 7 2 5 3 5 9 4 0 8 1 2 8

请填接下来的 10 位。

解析

本关提供的50个数字分别是圆周率的第 101-150 位。直接百度,或者在 OEIS 中搜都可以看出来。

那么接下来要填的数字想必就是圆周率的 151-160 位:4817114502,有无空格皆可。

Final

潜藏在谜题背后的事物,请在 305856724 中寻找。

解析

本关的输入框是个幌子,填什么都是错的。

题目中提供的信息 305856724 个QQ群号,加群就算通关了。

(本群已解散,请勿搜索和加群。如误加其他群导致出现任何问题,出题人概不负责)

癸卯年概览

时间:2024-02-07 19:15:00 至 2024-02-09 07:15:00

这是第二年出解谜了。吸取了前一次的教训,今年我调高了难度,并且不再允许扫路径和跳关了。

第一位通关者是 Midoria7,在游戏开始 972 分钟后通关。

在规定时间内,共有 12 人通过了本次解谜。

Fishing

我们怀疑你是人类,请完成机器人验证。 captcha

解析

如果不细看的话可能会把这关当做真的人类验证码,然后填个 0.3 就过关了。

但是如果你真的细看了的话……嘿嘿,如果填了 0.30000000000000004,那就会被判断为机器人然后喜提封禁 60 秒,这就是“钓鱼”的真缔。

至于为什么是 0.30000000000000004,就请读者看 这段内容 吧。

Capitalist

每分钟为一个回合。当玩家停留在该页面时,他每分钟可以获得1个单位的商品(只有一种商品)。

有一个中央市场,可以按照一定的价格收购或销售商品。市场价会随着全体用户的购买/出售行为而发生变化。总体的规律是,如果市场的收购量多于销售量,那么下一回合的价格会走低;如果销售量多于收购量,那么下一回合的价格会走高。

你完全有可能通过大量买入来哄抬价格,然后紧接着卖出同样多的商品,赚取差价。不过……你并不知道其它玩家的行为,而且他们的买卖操作也会影响市场价格。你可以看到从开始时间为止的全部市场价格变化图表。

解析

既然大额交易会导致大幅亏损,那么玩家就必须在「靠金钱通关」和「靠商品通关」这两个思路中进行选择。在这两个思路之间不停跳变是完全不可取的。如果要靠商品通关的话,思路就应该是要么「仅生产」,要么少量低买高卖,总之别亏商品数量;如果要靠金钱通关的话,那就应该多卖出,尤其是在市场价格高的时候多卖。

市场价 0.625 是一个关键节点,因为对于通关来说,25 金钱和 40 商品是等价的。如果市场价远高于 0.625,那么把商品都换成钱就要更赚;如果远低于 0.625,那么把钱都换成商品就更赚。

对于前期玩家来说,市场价是 1.2,这个时候大家很容易陷入到「全部换钱」的思维陷阱中。但是如果玩家有研究过这个规则的话就会发现:所有玩家都只能生产商品而没有人可以生产金钱!也就是说,在交易过程中,不可避免地会产生这样的现象:大家都在生产商品,然后卖出;但没有人可以生产金钱,所以市场价的下跌趋势是必然的结果!

当然这是长期趋势。对于很多玩家来说,短期的赚差价还是更重要一些;所以但凡参与交易,肯定会在高价时卖出而低价时买入。这样就会形成一涨一跌的局面,大家就会找到规律,这关也就没什么意思了。所以我本人出马,开始凭借大量初始资源,通过大额买入/卖出来操纵市场!

capitalist

不过总体来说,这关不太可能卡关,大家用或长或短的时间都可以过。而且这次解谜的战线拖得挺长,差几分钟到十几分钟也不是什么大问题。

RGB

初始位置在 puzzle.cpphusky.xyz/red

在本关我们只能看到一个色块,而通关所需要信息以背景色隐写在了色块中央。

本关已给提示:去年解法,故技重施。

解析

如果你在电脑上用鼠标划一下,就很容易发现 red 页面中的隐写内容 1F。手机也有可能看出隐写内容,你在屏幕中央长按一会儿就有可能选中对应文字。有的大神直接 Ctrl+A 一键发现隐写内容,确实可行。另外还可以按 F12 进行网页元素审查,一样能发现这个隐写内容。

接下来可以想一想,1F 和红色能让你联想到什么?有可能是色号。但倘若是色号的话,单纯一个红色 1F 是不能说明什么信息的,还应该有绿色和蓝色。

那么问题来了,绿色和蓝色应该到哪里去找呢?答案就在 url 中。原本的网址 url 是 https://puzzle.cpphusky.xyz/red,如果改成 https://puzzle.cpphusky.xyz/greenhttps://puzzle.cpphusky.xyz/blue 会怎么样呢?

哎,改完了之后发现还各有一个页面,其上的信息分别是 1E 和 33.这样一个色号就拼成了。

如果你游玩过一款创新立体 3D 节奏游戏《韵律源点 Arcaea》的话,你就会知道 #1f1e33 是由曲师 Camellia 制作的一首曲目(同时还是游戏主角对立的代表色)

但是,我们还始终没看到答题区域。那么最后尝试把这个色号放到 url 中,也就是 https://puzzle.cpphusky.xyz/1f1e33(这里我们设计了容错机制,大小写均可以),就会出现又一个页面。这里有四个答题框,终于有了答题区域。该页面还有一条隐写信息 C,M,Y,K,这是 CMYK 颜色表示法。下面的答题区总共有四个,看起来它们之间有着一一对应的关系。

随便百度一个“RGB 转 CMYK”,把 #1F1E33 这个色号转换成 CMYK,就会得到39, 41, 0, 80这个结果,填进去就通关了。

关于提示:去年的门对千棵竹就是改 url 的题目,今年又来一道改 url 的题,所以说是故技重施。

Calculator

【数字】

本关已给提示:珠。

解析

一开始很多人都猜上半部分三进制,下半部分六进制,但是试了好多种解释方式之后就会发现,都不对。

所以在起初的时候这关的通关人数廖廖无几,但是给了提示之后 10 分钟内就有 8 位玩家做出来了,可见这一个字的信息量之大。

没错,这关就是象形的算盘(老式 calculator)!我们可以根据图形中的算珠分析出对应的数字来,它们分别是 682, 829, 7,加起来就是 1518,填进去就对了!

(据反馈,有的玩家在解谜的时候想到了算盘的可能性,但“感觉不是”就换思路了,提示公布之后才意识到。所以说一定要敢于尝试啊!不敢尝试的话那么 Art 那关也过不了。)

Introduction

【成语】

本关已给提示:线索要到题外找;如果不需要对应 呢;韵

解析

(这关难度比我想象中高,因为大家好像都没有第一时间注意到分号。)

这关上来只能看到一个图,所以我们应该首先从这个图中获取尽可能多的信息。这里我们看到的是三条向量四个点,而答案要求一个成语。绝大多数成语都是四个字的,所以我们可以推测这四个点与四个字之间有对应关系。

(有通关玩家说,下意识想的到是看图猜成语,但是试了各种可能性都不对)

这个图中还呈现出了什么信息呢?就是四个点的坐标。我们可以横向与 15 相比较,根据比例测出四个点的横坐标;纵向与 40 相比较,根据比例测出四个点的纵坐标(15 和 40 是用在这里的,相当于比例尺)。这样一来我们就得到这四个点的坐标:

(11,14), (2,4), (5,11), (10,38)

接下来问题来了,我们要去哪里找字呢?第一个线索给出之后,各位应该可以想到本题的标题 Introduction。这个词可能意味着引言,或者介绍;而且对应的内容出现在题目之外。

这个时候我们起码要把这个网站本身的信息搜罗一遍,然后再去想其它的可能性吧。然后我们就会在「关于」页面中找到 「cppHusky 的自我介绍」

看上去大概率是这段内容了,那么怎么把这四个坐标对应到这个文段中的特定文字呢?

这时候大家好像普遍在思考如何把这段内容排成 的样子,但是最后会发现无论如何也做不到。

后来给了第二个提示说,你未必需要排成 嘛。然后确实就有两位大神发现解法了;第二天我醒了之后发现还是只有两个人通关,所以我又给了第三个提示:韵。

如果你念一遍这段自我介绍的话就会发现……这段内容朗朗上口,因为它各部分都是押韵的。突破点就在这里。我们可以按照韵脚(当初我考虑到玩家可能注意不到押韵,还特地在不同韵脚部分间加了分号),把这段内容分成以下若干韵部:

  1. 偷懒起晚胡侃自满卖惨造反借钱不还胡搅蛮缠天方夜谭狡诈奸馋推波助澜五毒俱全大错不犯小错不断外强中干反攻倒算人穷志短思维迟缓好高骛远杀鸡取卵遇事不服管吃饭不付款
  2. 胡思乱想无话不讲行事草莽烧杀偷抢举止异常丧心病狂顺手牵羊狗急跳墙空手套白狼完事就躲藏
  3. 思想懈怠泼皮耍赖吃里扒外四方为害明里放债暗里使坏
  4. 发如蓬蒿眼如熊猫嘴如弯刀背如年糕腹如沙包腿如高跷做事不过脑花钱伸手讨太平盛世挖墙脚大难临头拔腿跑
  5. 平日无事很悠闲一出急事就失联小组讨论不发言问卷表单都不填一催就说在酣眠再催就说等明年
  6. 油嘴滑舌骗人唾手可得口若悬河画饼不拘一格天天翘课出门只顾吃喝玩乐十恶不赦百里之内声名显赫
  7. 虚与委蛇囤货居奇众叛亲离本性难移指东打西心口不一狗眼看人低仗势把人欺皮球飞来一脚踢不管三七二十一
  8. 取巧钻营独断专行下手无情变卦不停致使鸡犬不宁
  9. 为人蝇营狗苟经商专欺童叟说话祸出其口做事四处掣肘
  10. 乘人之危使人万念俱灰卷钱不归让你哑巴吃亏讲话似是而非黑锅从来不背任务不做积成堆死线一到人人催
  11. 趁火打劫破坏和谐表面顽劣内心胆怯
  12. 好为人师无畏无知落井下石随处碰瓷无的放矢寡廉鲜耻无所事事玩物丧志
  13. 装聋作哑弄虚作假装疯卖傻指鹿为马因小失大冥顽不化对手一来我就怕对手一走我就骂
  14. 一领奖励挥金如土一领任务装穷叫苦一到饭点如狼似虎一到开会六神无主

接下来,我们找到第 11 韵部第 14 字「心」,第 2 韵部第 4 字「想」(很多人看到这就直接填「心想事成」就过了),第 5 韵部第 11 字「事」,第 10 韵部第 38 字「成」,这样就解决本关了。

Palindrome

【七言绝句】

解析

(我本来以为本关会有点难度的——就算不难,起码也会拖点时间;但是没想到大家解决的速度有点快于我的预期了。后来一问才知道,大家是直接对照模板来填词的,根本没考虑那么多……)

Palindrome 是回文的意思。所以想必很多玩家都在研究怎么用回文,然后会发现无论怎么回文,写出来的诗都极不通顺,不像正常的诗(当然也不会通关)。(甚至有个大神在这关卡了快一天,最终错失奖金)

百度一下「回文诗」(第一名当时的做法是搜「圆形十四个字诗歌」,也可),然后很快就会发现这些东西……

这不就是和本题的图很像吗?所以有的人看懂了这类解法之后就直接照着模板填然后过关了!

(其实我就应该把这个圆圈转一转,因为预期当中读者应该要学点诗词格律常识才能做出这题的……)

绝句的基本格律要求是:四句一绝,二、四两句必须押韵,第三句不押韵,第一句可押韵或不押韵。如果读者知道这个,应该先找韵脚,然后再绕圈推演整首诗。这才是预期解法。

如果你懂的更多,还可以按照绝句的平仄格律来分析,它属于「平平仄仄仄平平」(平起首句入韵)式。当然,本题不需要这么深的知识;有则更好。

至于用韵的标准……很幸运,这道题的诗既可以用平水韵解,又可以用新韵解,这两种标准都是没问题的。

(至于诗本身……我水平不怎么样,想了半年也想不出一首更好的,只能写到看起来不尬的境界,各位多多包涵……)

答案为:

阔空清夜有繁星,夜有繁星伴月明。

伴月明灯光入海,灯光入海阔空清。

Art

原题内容如下,读者可以自行复制到记事本中打开。

''''''''''`";!i<~~~~<il;"'''''''''''''''`;i!"'''''^Iii"`Ii!"`I>!"^I>i"^I>!"`''''^l>!^'''''^l>!""l>!^^l>l^'''''''''''''''^:li<~+++~>iI,`'''''''''''''''''`;>+______________+i:`''''''''''':_--<`''''I_--~;--->l--->!---~;]]]i`'''`l-]->'''''i-]->i]]]>!]]]l`'''''''''''"!+-]------------_<I`''''''''''''^i+____________-_-_--__+l`'''''''''`;!l"`''''`;il"`;il"`;il"^;il^`;il^`'`'`^Iil^'''''^I>I^^Iil`^I>l^'''''''''';~---------___-------__>,''''''''`I+_____~I,^`''```^,!+____-+:''''''''">++I`''''''''''''''"~_+I:<__I''''',+_+I:~_+;''''':+_+;''''',+-+:''''''''"+]----->,"``'''``";<_-____i^'''`'^i_____>"`''''`'''''''`,<_____!`'''''':_-->`'''''''''''''';---i!_]]<'''''l]-->!-]->'''''!-]]i`''''l]]]l`''''''I_]---+;`'''''''''''''^l_____<,'''^i____+"`''''``,;;"``'''``;+_--_!`'''''`^,"`''''''''''''''''^""``^,"`````''^"^`'^"^```````^:"`'```'`^"^`''''''I_]-]-!`'''''`";I:^''''''^>____~"'`l____<`''''"<_____-__!`'''',+---+;''''',+--i`'''''''''''''''''''I_-->:---!`''''''''';-]-l!-]-!l-]]!'''''''''',~]--_I'''''I_------_~:''''`l____>^^____~"`''`l____----____:'''';_--->"'''`"~--!`''''''''''''''''''':+--!,_--I`''''''''':_--I;-]_lI_]];'''''''''`!]--]i''''"+---------__>^'''`i____:;____l`''':+_________-__+"'''`~---+:''''`,l;^`"l;^''''''''''`,l;^`,l;```'''',l;`'''''`:l;``:!:``:l:``:l:`''''"<]---"'''`<----------___l`''`:____il____I`''`l___-__-____-_+;''''>---_;'''':_--<I---<"'''''''''I--->!---~`''''!]]]>`'''`l]]]i>]]]>i]]]>!]]]l`'''"~----`''',~---------____i^''`,+___<I____l`''`;_____--___--_+:'''`~---+:''''^!~~:`i+<;`'''''''''`>+<:"i+~,'''''^<+<:'''''">+<,"<+<,,>+<^"<+<"''''"~----^'''^~---------____!`''',____>"____<^'''^i__-__-______l`''',_---<"''''^!~<,`''''''''''''''''''''''''''''''`'''"i+<"''''''''''''''`">+>"''''^i--]-I'''';+------_____<,'''`!____I`i____!`'''`I~___-___-~:''''^<---_l`'''`:_--<``''''''''''''''''''''''''''''''''`l-]]>'''''''''''''''l]]-l`'''':+---+,''''">_----___+!^'''':____~^'"~____i`''''`,Ii>>!;"`''''"<---->^'''''`,I;^''``'''''''```'''^`''`^`''```''''''`:!I`'```''`^`''`^`'`;!;`'''''`l_---+:'''''^;!i>il:`'''''I____+:`'`,<____+;`''''''''''''''^l+----<^'''''''''''"+-_!`'''`,+-_l:_-_l;+--!,+]_I`'''';+--l:_]-II-]_lI_]-;;_]_;`'''''`!----_i"''''''''''''''`,<____~;`''''"i_____+!,`''''''''`:i_-----!`'''''''''''',---i^'''`:_--!;-]-!I_]]i:_]-l`''''I_]]!;-]-ll]]-!l-]]II-]-I`''''''`;_----_<;`'''''''''^I<_____<,`''''''`,<__-____+~<>><~+_------>"'''''''''`";:`'`"^`'"I:`'`"^`'"!;`'^"^'`,!:`''''``:!:''`"^'':i;``^"^``:!:`'''''''''`l_-----_+~<>>><~+______~;`''''''''''`"!___-_--_-_-------+l^''''''''''`,_--<`''''I_]-~`''''I]]->^'''`;--]i`'''`l-]]>'''''!]]]i`''''l]]-l`''''''''''^;~-----____________>,`'''''''''''''''`^;>+_-_-----+i:^`''''''''''''`^>-_;`''''"<--;'''''^~-+;`''''"~]_:`'''',~]_,'''`',_]+:`'''`"+-~,''''''''''''''`,l~_-___-__+<I"`''''''''''''''''''''''''```````''''''''''''''''''`I~>"'''''`l+>^'''''''`''`l+>^`l+i^''''''''''^!+i^`i+i^'''''`!~!^'''''''''''''''''''````````''''''''''''''''''''''''''''''''''''''''''''''''''''`:---~`''''I_--~`''''''''`!-]]+I]]]>`''''''''`l]]]i<]]]>`''''!]--!`''''''''''''''''''''''''''''''''''''''''''''''``'''``''''''''``''''''''``'''``'`;>!^'```'`;<i^'''''''``'`I<!^`I~!^''`'''''''`I<!^`l~!^'''''`l<l^''''''``''''''''``'''``'''``'''``'''``'''''''^>__i"i__l'''''^<-_!`''''`<-_l,<--l`''''^~]_l,<--I'''''"+]_I`''''"+]_;,_]_I`''''''''',_]+;''''''''''''''`:~-+"''''';+_~,;+_~":+_<,I+_<,;~+<^''''',+__~I~--~`'''':+--~^'''',_-->l+--~`'''':-]->l_]]<`'''';-]-i^'''';-]]!l-]-i`'''''''''!]]-!`'''''''''''''`l---I''''`i___!!___;!__+Ii__+l!+++:''''''^::``^:,`''''''"lI`''''''^:,`'^:,``^""`'^:,`'^;,`''''''"!;`'^""`'^:"`'^;,`'^,^'`^"^`':!:`'''''''''''''''`:l,'`^"^''";"'`":^''":^'`:l"'`:I"`'''''''''''''''''''',+--<^'''''''''''''',+--i`'''''''''''''':-]-iI_]]>''''''''''I-]]!;-]-ll-]-!`'''''''''''''`I_--;l__+;`'''''''''''''`i+_+;l+++,''''''''''''''''''''"<-_i`''''''''''''''"<-_l`''''''''''''''"+]_l;~--l'''''''''':+]-I:+]_;;_]+I''''''''''''''`;+-+,;+_~:'''''''''''''''I~+<,;~+<"''''''''''`,ll"',ll"'```''''''`:!l"`:!l"'```''''''''''''''''''``'`;il^'''''`I!I^''``'`IiI^`I>I^^I!I``I!;^`I!I^^I!;``I!;`'''''''''''''''^I!:`'``'''''''''''`:+--+"---<,''''''''`,---<!_--+^''''''''''''''''''''''''l-]]~'''''!]]]>`'''`l]]]!i]-->!---il---l>---i!--_l!___I`'''''''''''''`>+++I'''''''''''''''`I<<:`I<>:`''`''''''`l~>:^l~<:``'''''''''''''''''''''''"!+<,'''''^i+>,'''''^i~i""i+i""i~i^"i~i""i~i""i<!^"i<!"''''''''''''''',i<l^'''''`!+~I`''''^!++I'!++I^i++l`'''''''''^i++I^i++;`>_~I`'''''''''''''''''''''''''''`'''''''''''''''''''''"<+<,''''',<+<^''''''''''''''',<~i"''''''''''"__-~,'''':+--+,---<l_--~^''''''''';_--+;-]-~I--]<"''''''''''^l~++++++++++++++++++i"''''''''''''''''l---l`'''`l-__l'''''''''''''''i__+I`''''''''''^::`''````^;:`'^;:^`^;:``'`'''''''`";:`'";:``^I:`''''''''';_]]]]]]]]]]]]]]]]]]]]]]]-!`'''''''''''''`";,`'''''`,;"''''''''''''''''`,;"`'''''''''''''''"~-_<^'''''''''"+--<:~-->"_--i;+]-<`''''''''''''''''`i-]]]]-]]]]]]]]]]]]]]]]]]]]-<^'''''''''''''''''''''`I___:'''''l__+;I+++,I++~:''''`I++~,'''''"~--~^''''''''',+--<:+--<"_-->I+--~`'''''''''''''''':+]]]]]]]]]]]]]-]]]]]]]]]]-]]-l'''''''''''''''''''''`l___;''''`!+_+ll+_+,l++~;''''`l++~,`^:,^`^::^'^:,`'''''''``'''``'''``'''``''''''''''''''''''I_]]]]]]]]]->"'''`!-]]]]]]-]]-i`'''''''''''`":"`'''''`":"``":"`''`'''``''''`'''''''`,:^'^_--<I+--+I+--+`'''''''''''''''''''''''''''''''''''''''''I_]]]]]]]]-,'''...'`+]]]]]-]]-i`'''''''''''l---l`'''`l___I!___I`''''''''''''''''''^!+++:`!++l"i++!"!+~l''''''''''''''''''''''''''''''''''''''''''I_]]]]]]]]i''.....'':]]]]]]]--i`''''''''''',<+<,`'''',>~<",<~>,'''''''''''''''''''`:><i^':ii:`''''`;ii,';>i:^;>i:'''''`I>i,`'''''''''`I>i,^I<i,''I_]]-]]]]];'......''"-]]]-]]--i`'^l>l""l>!^^l>l^'''''"lil`^liI^'''''''''''''''"li;`'''''^_--~,'''`:+--+"---<l_--+^'''',-]]<"''''''''';]]]<!_]]~`'I_]]]]]]]<^.........'!]]]-]---i`'!---i!---il--_l`'''`l___l!__+I`'''''''''''''`>++~I'''''`,!!,`''''`:!l"':!!,`;!!,'''''';!l"`'''''''''`;il"`;il"''I_]]]]]]_:'.......'..^~]]]----!`'`IiI^^I!I``I!I^'''''^I!I`^I!;^'''''''''''''''^I!;`'''''''''''''''"i__!`>_+!,>__!`''''''''''''''"<__I`'''',<-_l''I_]]]]]]>,`'......''`,l-]-----!`':~_~;''''''''''''''`:<+<,`''''''''`;<~>":<~>,I<~>,:<~i^'''''''''',~--~^_--<I_--~^'''''''''''''`,_]]>`'''';_]]<`'I_]]]]]]--+^'....'''i-_-------!`'l--_!`'''''''''''''`l___;'''''''''`l+++;!++~;i++~Il~~~,''''''`""``^;:`'^,"``^I;`'`"^`'`"^''''''`"I:`''''''"I:`''I_]]]]]]]]<"'''``''^!-]-------!`''"I,`''''''`"`''`"`'`,;"```"`''''''`^"^'',;"``,;"'`,:^'''''',+--~I~--~`'''':+--~;+--<,--->^'''',_]->`'''';_]]<`':+]]]]]]]]]]]]]]]]]-]]-------_l''l--_!`''''I___Ii__+!l___;l+_+;`'''''''''!++~;i~+~Il~~~,'''''^<-->,>--i'''''^~-->,<--!^+]-!`'''`"~]]l`'''',~]-!''`!-]]]]]]]]]]]]]]-]-]-------->`'':_-+I''''',+_+:;__+;;~_+":+_~:'''''''''';++<,I~+<,;~~<"''''''"!!^''''''''''',il^''''''''''',il``,!I^'''''''''''''':_]]]]]]]]]]]]-]--]---]--_I`''''''''''''''''''`;!;`''''''''''`;!:'`;!,`'''''`;!,''''''''''':+--+,''''''''';_--+"'''''''''I_--_;--]~`'''''''''''''''`:!<~~~~~~<<<<<<<<<<i;`'''''''''''''''''''''i___!'''''''''`i+++!!+++I''''`>+~~I''''''''''`l++I''''''''''`!+~;''''''''''`!++:^!+~,`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''^>~i"''''''''''"i~i^,i<!`''''',i<!`'''''`l++I`'''`^l++I`!_+I`''''^!_+;`i_+;`'''`'''''^>-+;`'''''''''^<-+:`''''''''''''''">_~,">_<,`''''''''''''''''''',>+>^'''''''''''''''''''',>~!^,i<!^^_--~"'''':+--+"---<"'''':_]]~:---<"''''''''';]]]<^'''''''''I]]]>^'''''''''''''`l--->I---l`''''''''''''''''''`l___I'''''''''''''''''''`i~~~ll~~~:'"II^'`^^`'"II^`"lI"``^^''"II^'"lI^'`^^''''''',l;^'`"^''`^^'`,l;^''''''`^``'`^^'`:I:``:!;`'`^`'''''''`^`''''''`;!:''`^`''''''''''''`^`'`;l,``:l,''''''"<--<^'''''''''"+-->`''''''''',+-]>`''''''''':+]]i,+]]!`''''''''',_]_I;--_l`'''`:+-_I;_-+I`'''':+_+:`'''`;~_+,;++~:`''''''''';~~<:l~~<:I~~<"'''''"~--<^''''''''`,+-->`''''''''',+-->`''''''''':+]]i:_]]!`''''''''',_--I;--_l`'''':_-_II+_+I`'''':+_+;`'''`;~_+,;++~:`''''''''';~+<:l~~<:I~~<"`^;;^'`^^'''''''^I;^'`^^'''''''"I;^'`"^'''''''''''':il``:iI^'''''''''''`^^`'`"^'`,I:`'`^^``:i;`'''''`:!:``:I,``:l:'`:l:``:I,``,;"''`^`''^^`''`^`'^_--~,'''''''''"---<"''''''''',-]-<"''''''''''''''I_]]~I]]]<^''''''''''''''''''`I_--i'''''!___!`''''l___Ii_++!l+++Il+++Ii++~ll+++:'''''''''''''''`!_+l`'''''''''`!__I`'''''''''`i-+I`''''''''''''''">-_;">-+;`'''''''''''''''''''">_~,'''''"<_<,'''''">+>",<+>,,>+>^,>~i",>~>",>~i^''''''''''''''''''`''''''''''''''`'''''''''''''`'''''''`l+<"'''''`!+~,^!+<"`!+>,^!~<"^l~>"'''''^!~>^^!~i"^i~i"'''''`!<!^'''''''`''''`''^i<!^''`''''''''''''"!iI`'''''''''''''''''''''''''''''''''''''''':-]]~`''''l-]]+I]]]<!]]]<i--]+I---i`'''`l_-->l-__!i___i`''''l___I`'''''''''''''`i++~I''''''''''''''^!~~~:''''''''''''''`''``'''''''''''''''''''''`:il^'''''`:>l``:il^`:>l^`;il``:iI`'''`'`:iI'`:i;``;>;`'''''`:!;`'''''''''''''''`Ii:''''''''''''''''`;l,''''''''''`"!+--]-]]--]-+l^`'''''''''''''"~]]l`'''',+]]l'''''"_]_l:+]-I"+-_;,_-_I:~-_;,+_+;`'''':~__,,+_~,''''':~+~"`'''';~+<,;<~<^'''''''''`:<~>^''''`'`,<-----]]]]--------->"''''''''''':-]]<`''''I_]]~`'''';-]-i!_--<;---!l_--il_-_iI___l`'''`l+__lI+++I`'''`I+++;''''`!~+~ll~~~:'''''''''`l~~<,''''`;+------_+~>ii>~+_--]]]]~"''''''''''`,"`''''''`,^`'^"^``^I:`'"I,''`,^`'`,^''^,^''^"^`''''''^,`'`";"`''''''^"`'''''''";"'`^"`''''''`^^`'`":^`''',<-----~l^`''''''''`"!+-]]]]>^'''''''''''''''''''''`:-]]iI---il_-->''''''''''''''''''''''''''''''I__+;`''''''''''''''l~+~;'''''''''`!~~<;I~~~,'`:+----+:'''''''''''''''`I_]]]-~"''''''''''''''''''''',~-_I,+-+I:~-_I'''''''''''''''''''''''''''''',<+<,`'''''''''''''';<~>,'''''''''';><i,:><i^`,+----!`''''`:!<~~>l,'''''"<-]]]<^'''''`:!l"`;!l"'''''''''''''''`;!l^`;!I^''''''''''`;!;^`;!;^^;l;``;l;`^;l;`^;l;``;l:`^;l:`'''''`;I:`^;I:`^;I:``<----l`'''^l_-]------+;''''`<]]]-!`'''':-]]~I]]]<^'''''''''''''`l_--<;---i`''''''''`I___!i___i!+_+!l+_+Ii+++!l+++I!++~Ii~~~I'''''!~~~Ii~~<Il~~<:,----<^'''^>-]-------]]-i`'''"-]]]~,''''`I<i,`l<i:`''''''''''''''^l>i"^l>!"''''''''''^l>l"^l>l""l>l^^lil^^l>l^^IiI`^liI^"liI^'''''^l!;^"l!;^"I!;`l----l`''`I-]]-----]]]]]_:''''~]]]_;'''''''''^<_+I`''''">+~;"<+~;,>+~;'''''"<+<:,>~<,">~>,''''',>~>""><>",><i,,i<>^,><i"'''''''''''''''''''''''''l----I`''`l--]----]]]]]-_I''''<]]]-;''''''''';]]]<^'''';-]->l---i!_--<`''''l-__il+__iI___l`'''`l+__!I+++Ii+++!I+++;l+~~;`'''''''''''''''''''''''';----!`''`;_------]]]]]]+"'''`_]]]_:''''''''''";:^'''''`";,``";,``";,`''`''`":,``":,``":,`'''''`":"``":"``":"``","'`":"`'''''''''''''''''''''''''^_---_"`''`I_----]]]--]_,''''I-]]]<^'''',_]]i`'''':+-->:+--!:_-_!;+--i,+-_I`'''';+__l:+_+I`''''''''':++~:`''''''''';~~<:l<~<;I<~<,'''''''''`;<<>"'I--]-+`''''^i--]]]]]-I`'''':_]]]_;''''',_]]i`'''':+]->:_--!:---!I+--!,_--I`'''';+__l:___I`''''''''':+++;`''''''''';~~<:I~~~;I~~~"'''''''''`;<<<"'^i-]---,`''''''^""^`'''''`l-]]]-!`''''''^;,`'^;,`'^;,``";,`''''''";,``'''''''''`";"``":"`'";"``":^'''''''''''''''''''''`":^``":^'''''''''''`":^`''^i---]-~,`''''''''''''`;+]]]]-l`'''''':-]]~I]]-<!_]-~;--->^''''l_--<`''''''''`I___>I___li+_+!l+++!'''''''''''''''''''`!~~~ll~~~:'''''''''`l<<<:'''`I+]]]]]_i,^`````^";<]]]]]]+,''''''''^>_+;`<_+I">_+;">+~:`''''">+~:''''''''''">~<,">~<,"<~>,,i~<"''''''`''''''''''''',><i",i>i^'''''''''`,i>!^'''''`!_------]]]]]]]]]]]]]-+;`''''''''''''''''''''`'''''`''`l<i"^l<i"'''''''''''''''''`''^l>l^''''''''''^l>I^'''''^liI^^liI^^IiI`^l!;^"li;`"I!;`'''''''',i+-]]]]]]]]]]]]-+!,''''''''''''''''''''''''''''''''I--->!_--<''''''''''''''''''''l+++!`'''''''''!++~l'''''l~~~Ii~~<ll~~~:!~~<Ii<<<Il<<<:''''''''''`^:l><~~~~<il,`'''''''''''''''''''''''''''''''''''`;!I^`;!l^''''''''''''''''''''`;!;^''''''''''`Il;`'''''`;l:`^;l:`^;I:``;l:`^;I:`^;I,`

解析

这是直接引用第一名 Midoria7 的解释,有删改:

这个题一开始就发现了唯一能操作的地方就是右下角的拖拉的地方。但是并没有深究,在尝试图中表示的是清明上河图,某些画有龙的名画,含有数字的验证码,需要斜着才能看到字的图片之后都不对。此时已经是凌晨 3 点了,本人太困所以就睡觉了。

第二天早晨 9 点开始看这道题是怎么个事。在拖拉之后发现模样渐渐显露,这是一个 QQ 群二维码。

但是这样还是无法识别。然后尝试了一系列别的方式加强清晰度都无果。

最终认命尝试叠图手描一遍,这样就能扫出来了。

右下角有一个很隐蔽的文本框调整手柄,这是本题的突破口之一(也有人直接调浏览器窗口大小了,这确实也能做)。当你拖动这个手柄的时候文字内容会改变宽度,然后所有的字符都会重排。在这个过程中,你可能碰巧看到一个神似二维码的图案——这就是本次解谜的通关群二维码!

当然这关还有一些其它方面的突破口,比如说,可以复制到记事本中统计一下,发现一共有 11455 个字符,而它的质因数分解结果是 。那么整幅画的字符长度和宽度只能在这三个数当中产生。我们很容易先想到 两种可能,而其中的一种正是标准答案。

再比如,当你按下 F12 之后, 浏览器会差点卡死, 就会看到显示内容中有大量的暗示,比如等宽字体、resize 显示、break-all 的换行方式等,这几乎就是在暗示以内容中的字符为单元进行布局。

总而言之,我们发现这是个二维码,但是……

这个二维码用 QQ 是扫不出来的。这时很多人都来问我,但是我都笑而不语。

没错,这道题至此还没有结束!下一步,你需要根据这个画,把二维码还原成能扫的样子!

这时候大家就八仙过海各显神通了,以下展示通关群中各位互相交流的解法:

甲辰年概览

时间:2025-01-26 19:19:19 至 2025-01-28 07:19:19

这是第三年出解谜了。本次我设计了大量的交互题,把玩家们折腾得够呛。明年还出

第一位通关者是 脉冲星,在游戏开始 331 分钟后通关,历经三个周目。

在规定时间内,共有 8 人通过了本次解谜。

前六题的一血名单如下:

  • 军火商于 19:20:50 拿下 CAPTCHA
  • Hexropt于 19:42:19 拿下 CountLightsOut
  • 在原七海于 19:57:07 拿下 BesiegeWithoutAssault
  • 赵丽于 20:01:46 拿下 DigitalCircuit
  • Evan于 20:02:18 拿下 EncryptedDialog
  • 脉冲星于 21:54:52 拿下 CatchGlowworm

CAPTCHA

本关是一道模拟验证码的题目,要求玩家在给定的 16 个图片中选出符合要求的内容。

但是,由我出的验证码怎么会像普通验证码那样简单呢……

可选题目一共有 7 个,接下来我将逐题解析:

bug

请选出以下包含 bug 的所有图片:

错误共有五处:

  • 头文件 studio.h 错误,应为 stdio.h
  • struct Node 定义时,next 之后未加分号;
  • create 函数中,for 循环迭代操作不是 i++ 而是 i--(这是唯一一个不能靠编译器检查出来的错);
  • create 函数中,调用 insert 函数时应当传入 struct Node** 类型的参数,所以要用 &head_ref
  • main 函数中,struct Node* head_ref, dup; 这样定义的 dup 其实是 struct Node 类型。若要正确定义,应写作 *dup

resistor

请选出以下包含 电阻 的所有图片:

这道题要用色环电阻法读出每个电阻的阻值。

注意,不是每个电阻都要从左向右读数!读数的起始位置取决于中间的色环离哪一侧更近。比如说,第 1 行第 3 列的色环离右侧近,所以从右向左读出

第一列第二列第三列第四列

planet

请选出以下包含 行星 的所有图片:

这道题的坑点在于,除了人们熟知的太阳系八大行星以外,还有「系外行星」这回事。

  • 太阳当然是恒星。
  • 月球当然是卫星。
  • 火星当然是行星。
  • 谷神星可能要查一下。其实它只是太阳系内的一个「小行星」。(「小行星」和「行星」是完全不同的)
  • 比邻星是离太阳系最近的恒星
  • 冥王星在过去被人们普遍认为是行星,但早在 2006 年它就被划为矮行星了。(矮行星也不是行星)
  • 木卫一,顾名思义,就是木星的卫星。
  • 墨提斯是木卫十六的别名,当然也是卫星。
  • 河鼓二、参宿五、瑶光、开阳,这些古人就能看得见的系外天体当然不可能是(不发光的)行星,一般来说都是恒星。至于系外行星,那都是 19 世纪之后才开始发现的。
  • 飞马座 51 是飞马座的一个恒星。
  • 飞马座 51b 是属于飞马座 51 的天体,它是不是行星呢?查一下会发现它确实是一个系外行星。
  • 15760 Albion 是一个介于海王星和冥王星之间的海王星外天体。(既然它是在太阳系内的,那我们直接照八大行星的名单排除就行了)
  • Beta Persei 也就是英仙座β,是一个由恒星构成的多星系统。

unit

请选出以下包含 长度单位 的所有图片:

这题也算是有点坑,一个是微观度量,一个是天文度量,还有一个很年轻的新单位,网上资料不多。

  • Bq(贝克勒)是放射性活度单位。
  • dB(分贝)是比例单位,在声学、电子学等领域都有涉及。
  • eV(电子伏特)是能量单位。
  • Np(奈培)是和 dB 相似的比例单位。
  • mmHg(毫米汞柱)是压强单位。
  • Å(埃斯特朗)是长度单位,一般用于微观长度的计量,
  • kn(节)是速度单位,一般用于航海、航空。
  • e 是基本电荷量,它在某些场合也可作为单位使用。
  • ha(公顷)是面积单位。
  • rad 有两种可能的解读,一说是弧度单位,一说是辐射吸收剂量单位。但不管怎么说,都不是长度单位。
  • Wb(韦伯)是磁通量单位。
  • ◦(度)是角度单位。
  • sr(球面度)是立体角的单位。
  • au(天文单位)是长度单位。起初人们把日地之间的距离定义为 1au。
  • Hz(赫兹)是频率单位。
  • Qm(昆米)是长度单位。这里的 Q 表示 ,是 2022 年启用的新词头。

tone

请选出以下包含 入声字 的所有图片:

这题没有任何坑,上网找本《广韵》自己查一遍就好了。

当然,如果你有相关的方言基础,这题甚至可以不用查资料,读一遍就过了。

答案:職、月、物、竹、活

math

请选出以下包含 大于2的数学常数 的所有图片:

这道题没什么坑,当然前提是你得知道它们都是什么。

  • 是圆周率,约为 3.14。
  • 是黄金分割比的比值,约为 1.618。
  • ,显然它小于 1,不用再算了。
  • 是自然对数的底,约为 2.718。
  • 是欧拉常数,约为 0.577。
  • Lemniscate 常数,约为 2.622。
  • 约为 1.414。
  • 约为 0.693。
  • 用到了黎曼 zeta 函数,它表示 ,约为1.202。
  • 用到了伽马函数,它表示 ,等于 1。
  • 用到了对数积分函数,它表示 ,这个结果为负无穷。
  • 用到了误差函数,它表示 ,约为 0.843。
  • Catalan 常数的值约为 0.916。
  • Artin 常数的值约为 0.374。
  • Claisher 常数的值约为 1.282。
  • Gauss 常数的值约为 0.835。

chordate

请选出以下包含 脊索动物 的所有图片:

本题所用的物种名全部采用双名法格式,所以需要先查出每个物种名,再下判断。

这道题同样也没坑,属于只要花点时间查很快就能做出来的题。

  • Homo sapiens:人类
  • Apis mellifera:西洋蜜蜂
  • Panthera leo:狮子
  • Canis lupus:狼
  • Equus ferus:野马
  • Gallus gallus:红原鸡
  • Drosophila melanogaster:黑腹果蝇
  • Octopus vulgaris:普通章鱼
  • Lissachatina fulica:非洲大蜗牛
  • Salmo salar:大西洋鲑(三文鱼)
  • Bufo bufo:大蟾蜍
  • Chelonia mydas:绿海龟
  • Pavo cristatus:蓝孔雀
  • Asterias rubens:普通海星
  • Balaenoptera msculus:蓝鲸
  • Lumbricus terrestris:普通蚯蚓

BesiegeWithoutAssault

在平面直角坐标系中,敌军的初始位置是 ,你可以选择任意一个位置,向敌军发动突袭。

突袭开始后,敌军总是朝着远离你的方向移动(此运动过程通过 300 步的近似连续过程来模拟),你可以指定任意位置进行移动。你与敌军的速度之比为

你需要做到「围而不攻」,既不能过分靠近敌军(距离 ),又不能让敌军逃出包围圈()的范围。

当敌军累计走过的路线长度达到 时,你的任务完成。

示意图

解析

视频演示

这个问题乍看起来还挺难想的,因为范围不大,而且双方的速度相差无几,所以一不小心就会让敌军逃出包围圈,追都追不上。

一开始我把这题的速度比设计成 ,但是测题时发现太简单,乱走都能过;所以经过反复测试,最后我选定了 的速度,这样就不能乱走了,必须仔细思考对策才行。

实际上,这道题的思路源自于一个「你追我逃」的模型。我们不妨做此假设:

原始问题

在一个圆形斗兽场内,一个奴隶和一头猛兽正在相互追逐。奴隶的速度比猛兽要快(假设速度比是 ,但他不能逃出斗兽场的范围;而猛兽总是朝着奴隶的方向进行追逐。

斗兽场的大小可以足够大,但并不是无限大的。问:是否有一种逃跑方案可以使猛兽永远也追不上奴隶?

解决这个问题的方案如下图所示,只要按照图示的位置关系跑成一个圆,猛兽就永远也追不上奴隶。

「稳定状态」

我们先来证明这个状态是稳定的。只要这个状态是稳定的,那么猛兽就永远追不上奴隶,二者只会在各自的轨道上无限画圆。

因为 ,所以二者的角速度 。那么经过一小段时间 之后,二者关于圆心的夹角 仍然保持不变。换句话说,在运动轨道上,奴隶仍然保持比猛兽超前 角度的位置关系。

而在这段时间内 是不会发生变化的,因为猛兽的速度方向刚好垂直于运动半径。

既然 都不变,那么我们就会发现一个事实:由 三边构成的三角形可以始终保持不变,二者就会永远这样运动下去。这就是我所说的稳定状态。

引入变因

接下来我们假设奴隶的运动方向略微偏离了原轨道,那样会发生什么呢?

如果奴隶的运动方向向外偏,那么运动半径 就会增大。又因为线速度不变,所以奴隶的角速度将会变小。这样一来, 也会变小**。

而奴隶速度向外偏,会使得运动速度在 方向上的分量增大,拉开二者的距离,所以** 会变大**。

问题来了: 会如何变化?以下给出四种假说:

  • 增大或不变, 减小或不变。这种情况是根本不可能发生的,因为在邻边 都增大的情况下, 增大或不变就必然意味着对边 减小。
  • 减小, 减小或不变。这种情况也不可能发生,因为 都减小就意味着另一个内角增大,而这个内角增大就意味着猛兽的运动方向会外偏,这样是不可能推导出 减小或不变的结论的。
  • 增大或不变, 增大。这种情况是可能的,不会产生任何矛盾。
  • 减小, 增大。这种情况也是可能的,不会产生任何矛盾。

会怎么变化,我们暂时不能下定论,但是 增大是必然的。而 增大就意味着,猛兽的运动方向也会外偏

同样的道理,我们可以得出,如果奴隶的运动方向内偏,那么猛兽的运动方向也将内偏。

但是无论如何偏转,只要奴隶以一个新的圆心、新的半径开始做圆周运动,那么猛兽的运动方向当然也就会趋近于半径比等于线速度比的同心圆。

把思路逆转过来

说了这么多,这个问题和本关之间到底有什么联系呢?

你可以尝试把整个运动过程逆转过来:不是猛兽追奴隶,而是奴隶追猛兽;猛兽不是朝着奴隶跑,而是背对着奴隶,朝着远离他的方向跑。那么整个问题就会变成:

至于奴隶还是野兽,我军还是敌军,换个名字的事情而已。

不知读者有没有发现,在这里,「围而不打」的要义不一定是追得越近越好,也不是一定非要朝着他的方向追,而是保持在一个稳定状态,和对手一直这样耗下去。如果一上来就思考这个「围而不打」的问题,我们恐怕很难得出这么清晰的结论。

稳态的初始化

问题到这里还没有结束。我们的斗兽场,或者说包围圈,只是一个很小的范围。我们真的能做到把敌军控制在这么小的范围之内吗?不妨试试。

我们的初始选点是随意的,但不能离敌军太近,也就是 才行。

有了 之后我们还需要确定圆周运动的圆心。因为 ,且 ,所以我们很容易算出

如果我们选点 的话,那么圆周运动的圆心就是 亦可),这样一来,只要满足 ,我们就可以确保敌军总是在包围圈内运动,如图所示:

我自己做题的时候希望这个半径不要太大,又不要太小,所以设定在 左右是比较合适的,那么对应的 就是 左右。

不过实际做起来我们没办法走曲线,那就只能用较短的直线来逼近曲线上的一段弧。这样做肯定也会带来精度损失,所以我们需要频繁调整我们的方向,争取把敌军控制在包围圈内。下图是我自己走的效果,在这里敌军总计走过的路程达到了 260,将近三个 95。

CountLightsOut

本题是 LightsOut 游戏的加强版。

在一个 6×6 的棋盘中,有些灯是开着的,有些灯是关着的(就像普通的 LightsOut 游戏那样)。

但是,你不知道哪些灯是开着的,哪些灯是关着的。每次你进行操作后,我只会告诉你「现在还有几盏灯亮着」。

你需要把所有灯都灭掉,才能通关。

这道题的过法很多,可以通过逻辑推演找试探解,也可以通过理论推导找解析解。从大家的做题效果上来说,如果找试探解的话,只要运气好,几分钟做完也没什么问题。但要找解析解就很麻烦了,光是写代码都得好一段时间。

不过,对于多周目玩家来说,寻找解析解则能一劳永逸地解决问题。找到稳定解法就不用再靠随机应变了,效率更高。

相比于朴素的 LightsOut 游戏而言,这关加强的点在于,玩家并不知道每盏灯的状态,只知道一个「总体情况」。那么如果能通过一定的技巧还原出每盏灯的状态,我们不就可以把它转换成朴素的 LightOut 了吗?至于朴素的 LightsOut 游戏,我们用不着自己解,上网找个 lightsout solver 就可以直接帮我们推导解题方法了。

试探解

视频演示

绝大部分玩家初次做题时都会寻找试探解。一般来说大家有两种不同的策略:

  • 一边分析灯的状态,一边灭灯,同步进行。
  • 不急于灭灯,先把每盏灯的状态都分析出来。

两种策略都是可行的。在这里我就以第二种策略来介绍。

基本思路

首先,如果我们除了初始状态以外一无所知,那么在什么情况下我们可以笃定一盏灯的状态呢?

其实只有一种情况,那就是当点击这盏灯时,亮灯数的变化刚好和此格周围的的灯数相等。

就以下图为例,如果点击了左下角的位置,然后发现亮灯数从 变成了 ,这说明什么?当然说明原来这三盏灯的状态都是「关」,而当我们点灯之后,三盏灯个状态都变成了「开」。

同样的道理,如果亮灯数从 变成了 ,那就说明原来三盏灯都是开着的,点灯之后它们都关上了。

但是假如说,我们点灯之后发现 变成了 或者 的话,那我们就没办法直接下判断了,因为只知道这个范围内「有几盏灯亮着」,却不知道「亮灯的都是哪些」。

假如说我们知道了一部分灯的状态,那么我们就可以据此进一步推导周围灯的状态。以下图为例,红色表示「已知是开着的灯」,黑色表示「已知是关着的灯」,那么当我们点击这个范围时,就可以根据亮灯数的变化,判断那个未知格的状态了。

如果从 变成了 ,那就说明那个未知格原本是关灯状态;如果从 变成了 ,那就说明那个未知格原本是开灯状态。

按照这个思路,我们就可以一步步通过已知信息推导出未知信息。

解析解

的格子解释起来还是太麻烦了点,我先用 的情况来作说明吧。

第一步

如图所示,我们给每个格子一个布尔值,用 表示灯开着, 表示灯关着。

而我们又知道,经过一次点击行为后,亮灯数的变化预示着「受影响范围内有多少盏灯原本是亮着的」

举个例子,如果我们点击了左下角的位置,那么 会受到影响,变成它的非值;而亮灯数从 变成了 ,这就说明在 三盏灯中,有两盏原本是亮着的:

列出这个式子之后,记得再点一下左下角,恢复原始状态。

接下来我们如法炮制,还可以再点击 所在格,列出如下方程( 自行推算):

同理,还有四个方程可列:

这样一来我们就构造了一个六元方程组。方便起见,我们把它写成矩阵形式:

这个方程组的系数行列式等于 ,意味着方程组不一定有解。但是别担心,「现实」能够保证它是有解的——因为 不是凭空赋值的,它对应的是真实世界中某个可解的情况。

据此,我们就能够通过解方程组把 都解出来了。于是第一步完成。

第二步

现在我们知道了每盏灯的状态,接下来我们还需要一个方案来求解「如何灭灯」。

我们知道,两次(以及偶数次)点灯相当于没点,而三次(以及奇数次)点灯相当于只点了一次。所以说对于每盏灯来说,我们要么「点」,要么「不点」,只有这两种选择。

我们设 表示是否需要点第 盏灯。以第一盏灯为例,如果 ,那么我们就需要保证所有影响到该灯的操作之异或和等于 ,这样才能关掉该灯;如果 ,那么我们就需要保证所有影响到该灯的操作之异或和等于 ,这样才能不把该灯打开。因此:

其中 表示异或加,这点与第一步中的操作不同。

同样道理,我们也可以列出剩下的五个式子:

我们仍然把它写成矩阵形式:

这里的系数矩阵和刚才一模一样,因为系数矩阵正是由这个图的规格决定的。

接下来只要解出全部的 ,我们就知道该点哪些灯了。

情形的推广

接下来回到我们的 关灯游戏,我们会发现,整个问题的框架和 的版本并没有什么不同。不同的地方只是系数矩阵发生了变化而已。

该矩阵是一个 36 阶方阵,这里不方便写,我就在这里提供一段用于生成此矩阵的 C++ 代码:

//这里N=M=6
void gaussian::getcoef(bool **coefficient){
	for(int i=0;i<N*M;i++)
		for(int j=0;j<N*M;j++){
			int ix{i/M},iy{i%M},jx{j/M},jy{j%M};
			if(ix==jx){
				int dy{iy-jy};
				if(dy<=1&&dy>=-1)
					coefficient[i][j]=true;
			}
			else if(iy==jy){
				int dx{ix-jx};
				if(dx<=1&&dx>=-1)
					coefficient[i][j]=true;
			}
			else
				coefficient[i][j]=false;
		}
}

更多相关代码参见我的GitHub仓库

使用 z3 库求解

YouXam 还提供了一个使用 z3 库进行求解的方案。相比于自己手写高斯消元,直接调库还是快多了。

from z3 import * # pip install z3-solver
cells = [[BitVec(f"cell_{i + 1}_{j + 1}", 8) for j in range(6)] for i in range(6)]
flips = [[0 for _ in range(6)] for _ in range(6)]
now = int(input('当前有多少个灯亮: '))
print('现在从左到右,从上到下,按顺序点击每个格子,每次点击后,输入有多少个灯亮')
counts = [[int(x) for x in input(f'输入第 {i + 1} 行(空格分割): ').split()] for i in range(6)]
nowsum = sum([sum(row) for row in cells])
s, k = Solver(), Solver()
s.add(*[Or(cell == 0, cell == 1) for row in cells for cell in row], nowsum == now)
for x in range(6):
    for y in range(6):
        for dx, dy in [(0, 0), (0, 1), (0, -1), (1, 0), (-1, 0)]:
            if 0 <= x + dx < 6 and 0 <= y + dy < 6:
                nowsum += 1 - 2 * (cells[x + dx][y + dy] ^ flips[x + dx][y + dy])
                flips[x + dx][y + dy] ^= 1
        s.add(nowsum == counts[x][y])
s.check()
clicks = [[BitVec(f"click_{i + 1}_{j + 1}", 1) for j in range(6)] for i in range(6)]
k.add(*[0 == (s.model()[cells[x][y]].as_long() ^ flips[x][y])
        + sum([clicks[x + dx][y + dy] for dx, dy in [(0, 0), (0, 1), (0, -1), (1, 0), (-1, 0)]
            if 0 <= x + dx < 6 and 0 <= y + dy < 6]) for x in range(6) for y in range(6)])
k.check()
print('以任意顺序点击值为 1 的灯:\n' + '\n'.join([' '.join([str(k.model()[clicks[x][y]]) for y in range(6)]) for x in range(6)]))

EncryptedDialog

本题是 AI 交互题。你只能用英语来和它交流(更准确地说,只能使用 ASCII 可打印字符,如果 AI 回复了非 ASCII 可打印字符,会使用 □ 来代替)。

你向 AI 输入的内容将会被一个「输入码表」转换成密文,再发送给 AI 作为输入;AI 的输出又会被一个「输出码表」转换成密文,再显示给你。

你事先无从知道这两份码表,我只能告诉你:码表是由26个英文字母到26个英文字母的一一映射(大小写不敏感)。

你的目标是让 AI 输出一字不差的 The quick brown fox jumps over the lazy dog.(注意这里的输出是最终显示到你屏幕上的输出)

解析

视频演示

游戏时发现有人说直接送一个引号套着的字符串就可以让它原模原样输出,我就试了一下。没想到第一次就成了。

但是当我兴冲冲地把码表排好了,准备让他复述的时候,它却再也不复述了。可见这不是稳定解法啊……

基本思路

每个回合的流程如下图所示。我们的输入 I 通过输入码表替换成加密输入 E,用于对 AI 的输入;而 AI 的输出 O 又要通过输出码表替换成加密输出 D,显示到我们的屏幕中。

相信大家玩一小会儿就可以慢慢找到 O 和 D 之间的映射关系,我就把它叫做 D2O 吧。有了 D2O,我们至少能理解 AI 每次的输出是什么意思了。

但这样还不足以解决整个问题。如果你希望它原模原样输出你的话(当然,得碰一点运气),那么你至少需要知道 D 和 I 的映射关系 D2I,才能达到目的。而如果你希望给 AI 发指令让他理解你的意思,那你还需要知道 E2I 才行。

D2O 的测定

D2O 就是一个很简单的单表替换过程,没什么难度可言,随便找个解码网站(比如quipquip)都能做了。

如果要自己做的话,可以先把多个回合的 D 整理到一起,做个字频统计,然后就能看出一些常用字母(比如字频 12% 的 e)。接下来再靠语感和不断尝试,把整个替换表解出来就可以了。

D2I 的测定

D2I 的过程虽然很长,但是对玩家来说,它是最直观的:你知道你自己的输入 I,你也能看到显示的输出 D。可是麻烦点在于,中间的 AI 环节是一个黑箱,我们能否想办法消除这个环节带来的影响呢?当然可以,那就是引导它进行复述

在引导复述时,比较好的方案要么是直接套引号变成引文,要么是直接放代码块要求它解释(它可能会把源代码复述一遍再扯些有的没的),比如说:

这样就很容易把 D2I 统计出来了。

E2I 的测定

T 如果你还需要测定 E2I 的话,别急,刚才的结果还有用。

我们想,我们已经知道了 D2O,而在复述过程中,存在 O=E 的部分,那么我们就可以得到 D2E 吧。

我们刚才又得到了 D2I,那么根据 E2D(D2E 的逆映射)和 D2I,我们就可以求出 E2I 了!

指令构造

现在我们掌握了充分的信息,我们可以构造一个指令让 AI 输出我们想要的结果了。

举个例子:output:"The quick brown fox jumps over the lazy dog."

这段输入包含「说明」和「内容」的部分。说明部分是 E,要让 AI 能看懂的;而内容部分是 D,要显示到屏幕上的。

所以我们应该用 E2I(output) 把说明部分转换成输入,用 D2I(The quick brown fox jumps over the lazy dog.) 把内容部分转换成输入。最后,拼成我们要输入的 I。

CatchGlowworm

在三维空间直角坐标系中,捕虫网的初始位置是 ,而萤火虫与捕虫网的初始距离为

捕虫网受你的控制而移动,而与此同时,萤火虫也总是朝着远离捕虫网的方向移动,此过程使用 1000 步的近似连续过程来模拟。

你的目标是,在萤火虫逃出 的范围之前,抓住萤火虫。

捕虫网与萤火虫的速度之比为 ;抓住萤火虫的判定标准为:捕虫网与萤火虫的距离不大于

每回合输入你希望捕虫网移动到的位置 ,其中 为浮点数,表示捕虫网移动的目标位置。

解析

本题有两种解题思路。一种是逐步试探,不断逼近萤火虫;一种是用小步位移先求解萤火虫的位置,再直接追至目标位置。两种方法都是可以的,不过要走多周目的话,还是建议求出解析解。

试探法

在这道题中,你只知道萤火虫的距离,而不知道具体的方向,这是很麻烦的。那么,有没有什么方法可以确定这个方向呢?当然有。

试想,如果你向某个方向前进了 距离,而萤火虫与你的距离增加了 ,这说明什么?

只有一种情况:萤火虫和你的前进方向完全相反。

再试想,如果你向某个方向前进了 距离,而萤火虫与你的距离减少了 ,这说明什么?当然是萤火虫和你的前进方向完全相同。

我们再来考虑更一般的情况,即,当你向某个方向前进 时,萤火虫与你的距离变化了

如果 ,这就说明我们正在南辕北辙,方向不对;如果 ,这就说明我们的方向确实是朝着靠近萤火虫的那一侧。 越大,就说明我们的方向越接近于真实的方向。就这样,我们可以一边调整,一边试探,不断逼近萤火虫,从而把距离缩减到 以内。

解析法

在此之前,我们只是根据 的大小来粗略判断「我们距离萤火虫多远」。但其实,我们更希望充分利用这份信息,判断出萤火虫的具体方向。

假设我们朝某个方向(设方向向量为 )从点 移动到点 ,而萤火虫从点 移动到点 。我们可以证明 一定在 三点确定的平面内(因为萤火虫运动的方向向量一定平行于此平面)。

那么我们首先在这个平面内思考萤火虫的运动过程(在三维空间里描述起来还是太麻烦了点):

在该图中,萤火虫的行动路线是个曲线;但只要 足够小,我们就可以把它近似地当作是直线。

这样一来, 将会构成一个三角形,而这个外角 ,正是我们期望得知的「方向角」。

如何求出 呢?我们可以使用余弦定理:

整理一下这个式子,就可以得到

现在我们知道了方向和距离,那么就能在平面上确定两个点(因为我们尚不知晓 的正负),这两个点就是萤火虫可能位置的近似解。

然而,在三维空间中我们无法根据现有的信息判断「这个平面在哪」,因此我们得到的结果只能说明萤火虫可能的位置在一个圆环上。

接下来我们再选择一个与 线性无关的方向向量 ,重复以上工作,得到另一组解。两个圆至多只有两个交点,这是一个巨大的进展。

接下来我们再选择一个与 线性无关的方向向量 ,重复以上工作,得到另一组解。三个圆至多只有一个交点,这就是我们需要的解!

以上只是对可行性的阐述;而实际上我们没必要真的在空间中求三个圆的交点。我选择的方案是:投影

我们通过在 方向上的运动能够得到一组解,那是一个圆环。我们不能确定萤火虫在圆环上的哪个位置;但有一件事是确定的,那就是它的位置在 方向上的投影。

举个例子,如果我们向 轴正方向移动了 ,据此求出的角度是 ,那岂不就是说,萤火虫的位置在 轴的投影就是 吗?

同样的道理,如果我们再分别向 轴和 轴移动一小段距离的话,我们也可以求出萤火虫位置在 轴和 轴上的投影。这样一来,**我们就完全求出了萤火虫的位置!**那么接下来的问题就迎刃而解了!

误差分析

现在我们来做一点误差分析。

本题的要求比较松,只要距离在 以内都可以判定为通关,所以我们对计算误差的可接受范围就是

哪些地方产生了误差呢?

首先是,我们假设当 很小时,萤火虫的运动近似于直线

曲线运动带来的误差是很难估计的,但我们可以为它估计一个上界。

萤火虫偏转的角度约等于此图中的 。而当 足够小的时候,我们可以粗略认为

而萤火虫走过的距离为 ,它的位置误差不会超过半径为 ,弧度为 的扇形区域,也就是

假如说我取 ,那么这个误差大概会到达 量级,可以说是完全没有影响了。

另一个误差来源在于:我们分别测定 坐标时必然存在次序;当我们测定其中一个值时,必须要让萤火虫运动起来,那么我们先前测定好的值就不准确了。

假设我们的测定顺序是 ,而我们每次都移动 距离,那么 轴上的误差积累了两回合,也就是不超过 轴上的误差积累了一回合,不超过 ;而 轴上,我们姑且认为没有误差。

所以累积误差是多少呢?不超过 。所以只要 取得较小,我们就可以尽量避免出现很大的误差。

不过,也不是说 就要取得越小越好。本题的浮点数精度只有七位有效数字,换句话说,即便是 在数值上有 的差异,经过四舍五入之后都有可能放大到 大小。如果你用 量级的 来测定结果的话,那么这个结果的准确度反而要大打折扣了。

示例代码

下面的 Python 代码是我测题时使用的,可供参考:

import sys
rate=.5
delta=.001
d0=float(sys.argv[1])#初始状态下的距离
d1=float(sys.argv[2])#向x轴方向移动delta后的距离
d2=float(sys.argv[3])#向y轴方向移动delta后的距离
d3=float(sys.argv[4])#向z轴方向移动delta后的距离
dx=d3*((d0+rate*delta)**2-delta**2-d1**2)/(2*delta*d1)#相对距离在x方向上的投影
dy=d3*((d1+rate*delta)**2-delta**2-d2**2)/(2*delta*d2)#相对距离在y方向上的投影
dz=d3*((d2+rate*delta)**2-delta**2-d3**2)/(2*delta*d3)#相对距离在z方向上的投影
x=2*dx+delta
y=2*dy+delta
z=2*dz+delta
print(f'{x} {y} {z}')#前往此处即可抓到萤火虫

算法简化

脉冲星为我提供了一个更简单的思路,如图所示:

在这里,我们根本没必要求出哪个具体的角度,只需要在两个直角三角形中根据勾股定理列出如下方程组:

便可以解出 。这就是萤火虫与你在 轴上的相对距离。

另外两步也可以如法解出,它的思路比使用余弦定理更简洁,但没有本质上的区别。

DigitalCircuit

本关是一个由不同逻辑门(可能包含与非门、异或门等)构成的数字电路,包含 4 个输入端和 8 个输出端,初始输出为 00000000

你需要通过合理输入,使得此电路能够输出 11111111

本关的情况有点出乎意料,因为很多人过关不是依靠真的把题解出来,而是「一不小心碰出全 1 然后就通关了」,可见题目的复杂度还有待提升。我的预期好歹也是大家要测测电路,找找规律才行。

解析

这道题对于没学过数电的人来说并不友好,因为它不是一个简单的组合逻辑电路。在组合逻辑电路中,由确定的输入只会得出确定的输出。但在本题,你只要连续使用同样的输入来观测输出,就会发现输出结果是变化的。所以说,这个电路很有可能是时序逻辑电路。

具体的找规律过程就不提了,我直接说结果。

设输入为 ,上一轮的输出为 ,本轮输出为 ,那么:

就等于你的输入,也就是说

只有在「本次输入与上次输入(上次输入的结果间接记录在了上次输出当中)完全相反」时,才会得到 1;否则得到 0

组成二位计数器,也就是说

则等于所有输入 、输出 的异或和。

以下 C++ 代码可以实现由输入和上次输出推算本次输出。

std::array<bool,preset::OutputNum> operate::signal(std::array<bool,preset::InputNum> &input,std::array<bool,preset::OutputNum> &output){
	std::array<bool,preset::OutputNum> result;
	//result[7,5,3,1]记录了本次的输入
	result[7]=input[3];
	result[5]=input[2];
	result[3]=input[1];
	result[1]=input[0];
	//result[6]只有在「本次输入与上次输入完全相反」时,才会得到true
	result[6]=input[3]^output[7]&&input[2]^output[5]&&input[1]^output[3]&&input[0]^output[1];
	//result[4,2]组成二位计数器
	result[4]=output[4]^output[2];
	result[2]=!output[2];
	//result[0]等于所有输入、输出的异或和
	result[0]=false;
	for(int i=0;i<preset::InputNum;i++)
		result[0]^=input[i];
	for(int i=0;i<preset::OutputNum;i++)
		result[0]^=output[i];
	return result;
}

回到我们的问题。我们的初始状态是 00000000,而我们希望到达全 11111111,这其实就是一个在有向图上寻找路径的问题,那么无论做广度优先搜索还是求最短路都是可行的。

人工推导

当然,这题不编程也完全可以做,我们试着寻找一下思路:

就像走迷宫那样,有的时候从终点开始要比从起点开始更加容易。

要想达到 11111111,最后一步的输入必定要是 1111,因为输出当中就有四位数等于输入。

而我们又要保证 等于 1,那么前一次的输入必须是 0000 才行。

同时, 构成二位计数器,也就是说,在前一回合,它们的输出将是

接下来的流程也可以照猫画虎地做,不过分岔会越来越多,很难逐个分析;因此我建议能编程的玩家还是试试编程求解一下。

编程求解

我们可以运用图论的知识建立一个有向图 ,图上的点表示「输出的结果」,图中共有 个点;边表示「经过一次输入,某个状态可以转移成另一个状态」,图中共有 条边。

我们还可以推断出这个图的一些特征,例如:因为有两位计数器每回合都会发生变化,所以任何一个状态在经历一次输入之后不可能返回它自身,因而 中没有自环。(当然这是题外话了)

接下来就可以在图上搜索或者求最短路。我用的是 Floyd 算法。

#include<array>
#include<limits>
#include"operate.hpp"
#include"preset.hpp"
void operate::floyd(
	std::array<std::array<int,1<<preset::OutputNum>,1<<preset::OutputNum> &dist,
	std::array<std::array<int,1<<preset::OutputNum>,1<<preset::OutputNum> &prev
){
	for(int o=0;o<1<<preset::OutputNum;o++)
		for(int r=0;r<1<<preset::OutputNum;r++){
			dist[o][r]=std::numeric_limits<int>::max()/2;
			prev[o][r]=-1;
		}
	for(int o=0;o<1<<preset::OutputNum;o++){
		dist[o][o]=0;
		prev[o][o]=o;
		std::array<bool,preset::OutputNum> output;
		for(int d=0;d<preset::OutputNum;d++)
			output[d]=o&1<<d;
		for(int i=0;i<1<<preset::InputNum;i++){
			std::array<bool,preset::InputNum> input;
			for(int d=0;d<preset::InputNum;d++)
				input[d]=i&1<<d;
			std::array<bool,preset::OutputNum> result{operate::signal(input,output)};
			int r{0};
			for(int d=0;d<preset::OutputNum;d++)
				if(result[d])
					r+=1<<d;
			dist[o][r]=1;
			prev[o][r]=o;
		}
	}
	for(int k=0;k<1<<preset::OutputNum;k++)
		for(int i=0;i<1<<preset::OutputNum;i++)
			for(int j=0;j<1<<preset::OutputNum;j++)
				if(dist[i][j]>dist[i][k]+dist[k][j]){
					dist[i][j]=dist[i][k]+dist[k][j];
					prev[i][j]=prev[k][j];
				}
}

Floyd 算法应该是这里面最麻烦的了,不过我有不得不用的理由——那就是分析整个图的性质。

不过这些内容就是出题时需要考虑的了,如果我有空的话,之后会对此做进一步说明。

WhatHappened

这关虽然有一个填写框,但却没有「正确答案」,所以这道题所谓的 分是不可能达成的。

解谜需要的信息都包含在提交产生的错误答案中。本关不可以重置进度,所以如果玩家不慎忽略了这些信息,那就只能开新周目再次获取信息了。

解析

  1. 你需要通过前面全部 6 道题,才可以获得我的情报哦。

有一小部分玩家玩到这里就认命回去做剩下的那道题了,实在可惜;总是对出题人言听计从可是要吃亏的。

  1. 不过就算只通过了 5 道题,那也是可以的啦。

看吧,哪怕你多试一次,反转就会出现。

  1. 我有好消息和坏消息要告诉你,我猜你想先听坏消息。你不想听也没关系,反正嘴长在我身上。
  2. 坏消息是:这道题没有正确答案。换言之,没有人可以通过这关,别白费力气了。
  3. 好消息是:只有这一条坏消息了。
  4. 哦,或许你在听到这条好消息之前还有抱什么侥幸心理,以为我会告诉你更有价值的东西。
  5. 那只是因为你做我的解谜游戏做得还是太少了。
  6. 经常参与我的解谜游戏的人都知道,我不怎么出解谜游戏。
  7. 但是即便真的要出解谜游戏,也不会出得这么常规吧,比如直接把这个回合的回合数当作答案什么的。

如果玩家有注意到的话,好歹应该试试填 9 嘛,毕竟也没别的线索了。

  1. 呃……你刚刚是不是填了 9 来着?这不是答案,而且我说了,这题没有正确答案。
  2. 不过嘛,说不定它是个什么幸运数字,你可别忘了哦。
  3. 提到这个,顺便一说……其实,我说这么多废话,费那么多口舌,目的也很单纯。
  4. 就是为了说着说着让你忘了我之前都说了些什么。

到这里玩家应该意识到要对前面的内容做记录了;而就在此时,第一条重要信息刚过去,玩家多少该留有印象才对。

  1. 本关的回合数是不可以重置的哦。之前我说过的那些话,你不会再看到第二遍了。
  2. 当然也不是完全没有办法的啦。你可以重新创建一个账号,再把前面的题做一遍。
  3. 不过因为本次解谜出了一大堆巨恶心的交互题,所以我觉得,任何一个正常人都不会喜欢把这些题再做一遍的。

事实上的确如此……很多玩家错失了第一周目的信息,但因为麻烦不想开二周目重做一遍。

  1. 我自己也不例外。我还要一遍一遍调试那些题目,都快做吐了。
  2. 但是一想到玩家们要绞尽脑汁解这些巨恶心的交互题,我就感到心情舒畅。
  3. 我每年过年的好心情就押在看大家做题上了。
  4. 当然……我也不是那么喜欢幸灾乐祸的人啦。
  5. 每年解谜我都有为通关者准备奖励的说。
  6. 只不过……这关没有答案来着,你过不了。
  7. 经常参与我的解谜游戏的人都知道,我喜欢「故技重施」。
  8. 所以,前两次解谜的最后一关都没有设置答案。

这是一个关键信息。既然前两次解谜的最后一关都没有设置答案,那么之前的那些人是如何通关的呢?

我们翻阅之前的解谜答案,会发现前两次解谜都是通过引导玩家加 QQ 群来通关的。既然这次也是「故技重施」,那么就有理由怀疑本题会给你提供有关 QQ 群的信息

  1. 这样大家都过不了关,那奖励不就是我的了吗?
  2. 一开始还挺忐忑;后来看到大家一边做题一边骂,我就放心了。
  3. 哎呀,这不叫私吞,没有那么恶劣,充其量只是物归原主而已。
  4. 但是还是有一些幸运儿可以拿到奖励的。不过……我不建议你抱这样的侥幸心理哦。
  5. 经常参与我的解谜游戏的人都知道,每次解谜能拿到奖励的人,屈指可数。
  6. 你凭什么以为自己可以得到这个机会?凭你和我聊了三十几个回合的天吗?
  7. 还是你觉得自己可以技压群雄,在众多参与者中占有自己的一席之地?
  8. 放弃吧,不要痴人说梦了。(对话结束)
  9. (对话已结束)
  10. (对话已结束)
  11. (对话已结束)
  12. (对话已结束)
  13. (对话已结束)
  14. (对话已结束)
  15. (对话已结束)
  16. (对话已结束)

这里的「对话已结束」没有骗到多少玩家。多数人心里还是清楚的,这题还没完呢。

  1. 真是阴魂不散……你有完没完啊?
  2. 你在这里一直自言自语地提交些我不想看的内容,到底是为了什么?
  3. 为了金钱吗?不可能的,我今年的宣传帖没说有一分钱的奖金。
  4. 为了名声吗?不可能的,这种藉藉无名的小比拼,就算赢了又能得到多少人关注呢。
  5. 为了什么?你告诉我,就在此时此地告诉我。
  6. 哦……原来如此。
  7. 你要是真有这么自信的话,那我先来问你一个问题。它的答案是一个阿拉伯数字哦。
  8. 「鸿运当头,便可托物言志。」

接下来的这几关都是谜语题。如果你答对了,会提示「正确」;如果答错了,会提示「错误」;如果答案本身错误,但可以作为其它题目的答案,会提示「错误,这是另一个问题的答案」。说白了,这是一个群号 Wordle 游戏。

「鸿运当头」意为运气好,而「托物言志」是指用某个事物来表示此意,那么之前提到的幸运数字 9 就是正确答案了。

  1. 接下来我再考你几个问题。每个问题的答案都是一个阿拉伯数字。
  2. 老规矩,你只有一次机会。如果你答对了,我会告诉你;如果你答错了,我也会告诉你——告诉你答对了还是答错了。要是答错了,那你就自己去猜答案吧!
  3. 请听第二题:「微言大义,何数藏于题面?」

题面就两句,其中最值得注意的便是那一串黑色方块。复制下来或者开 F12 看一眼,就能发现其中的第九个方块与众不同。(脉冲星:「遇到不明字符感觉复制加f12都是基操了」)

  1. 请听第三题:「象形指事,及至转注假借。」

这是六书理论的内容。六书:象形、指事、会意、转注、假借。

  1. 请听第四题:「勾陈当空,何人指路于此?」

勾陈乃北极星。北斗七星指向北极星。

  1. 请听第五题:「目之所及,何数亘古不变?」

**整个屏幕遍是目之所及的范围,而唯一不变的就是通关率 0。别忘了,这题没有正确答案,所以大家都通不了关。

  1. 请听第六题:「算珠参差,上三去五进一。」

在珠算进位加法时,若满10破5,则有「八上三去五进一」之口诀。

  1. 请听第七题:「满腹经纶,诗书礼易春秋。」

儒家五经:《诗》《书》《礼》《易》《春秋》。

  1. 请听第八题:「气之始源,柏拉图之己见。」

在柏拉图的四元素理论中,柏拉图把四种正多面体与四种元素联系起来。而气元素对应的是正八面体。

  1. 请听第九题:「恒星之始,亦为宇宙之初。」

恒星生命早期的大部分成分都是氢;宇宙演化早期的绝大部分原子也是氢。氢的原子序数为 1。

  1. 好了,所有题目都问完了。

以上九个问题的答案组合起来,便是本次解谜通关群的群号 996708581