是否能构造出成语或短语四阶方阵?

文摘   2024-11-18 07:26   加拿大  

大老李注:

这是我发在知乎上的一个问题,我觉得很有意思。点击“原文链接”,可以链接到知乎原文,我也会在公众号上推送优秀的回答。

是否能够构造出一个4*4的汉字的方阵,使得每一行、每一列都是一个成语或短语,并且八条成语各不相同?

比如,我能构造出一个二阶的方阵:

地雷
漏电

地雷、地漏、漏电、雷电都是正确的词组。

三阶的话,我只有一个不完善的例子:

运输处
动车长
会议室

这里,“输车议”不是一个正确的词组。

我想问的是,能否构造出4阶的?如果都是成语,那很完美。如果是合格的4字短语,那也可以。更多详情,请见下文。


我是题主,我来说明一下这个问题的背景。

不久前看到高德纳(Donald Ervin Knuth,1938 - )1993年的一篇趣文,其曾编程寻找过英语单词的方阵,比如:

glass
light
agree
sheep
steps

这个方阵的特点是,每一行、每一列都是正确的英语单词。但稍感无趣的是,它是一个对称矩阵,即每个单词出现了两次。高德纳后来指出,Jeff Grant等人早在1970年代构造过非对称的单词方阵,比如:

strap
arena
laval
amene
salad

其中的10个单词各不相同,当然,难免会有一些生僻词。

我联想到,能否构造中文的成语方阵呢?我在知乎上搜到一篇2020年的文章[1],文章作者就搜索了中文成语方阵,得到如下结果:

这些结果已经相当不错了,但可惜的是,都是对称矩阵。每个方阵中,实际只有四条成语,而不是八条。但是,还是可以有改进的地方。

首先,该作者使用的成语数据库中,有8000多条成语,而这个github库[2]中,提供了31684条成语,所以会不会能从更大的数据库中,找到非对称的方阵?

其次,如果成语数量不够,也可以考虑使用四字短语,比如:北京大学,上班打卡,请客吃饭等等。这样,可供使用的词组范围就大大增加。

不管怎样,我希望有编程达人能构造出有趣的四阶成语或短语方阵。

附录:

看到知乎上有人给出了这样的答案

暴风疾雨
风吹雨打
骤雨暴风
雨打风吹

虽然不对称了,但“骤雨暴风“和”疾雨暴风“只差了一个同义字,且”雨打风吹“出现了两次。希望能再改进一下,使得一个方阵中,每个成语或短语只出现一次。

参考资料
[1]

文章: https://zhuanlan.zhihu.com/p/524456144?utm_medium=social&utm_psn=1841497914809131009&utm_source=wechat_session

[2]

github库: https://github.com/crazywhalecc/idiom-database/tree/master


大老李聊数学
“大老李聊数学”(喜马拉雅FM自媒体节目)粉丝公众号,不定期发布节目相关知识,讨论各类趣味数学问题。
 最新文章