你能看出这首诗的妙处吗?其实横读是一首诗,竖读还是这首诗!而且,这首诗也不是胡编乱造的。里面的台词都来自《全唐诗》,读起来还蛮有意思??的。创造这种奇妙组合的不是文献研究大师,而是一个小程序员。他用电脑找出所有符合规则的古诗词,还在Github上开源了代码。甚至README文件也很独立:我使用的程序应该用gcc编译,比如gcc-O3mgsq5.c-omgsq5等等。这种风格似曾相识?没错,这个程序员就是黄凌东,他之前开发了火遍全网的文言文编程语言。△文言编程的《你好,世界》他用数学中的三阶幻方(九宫格)作比喻,将符合此规律的诗词命名为“唐诗幻方”。然而,这首诗真正的奥秘还不止于此。这首诗的奥秘在于,乍一看可以横读,也可以竖读,但如果把编码成数字的汉字读一遍,就会发现:原来这是一个对称矩阵!不过,翻遍了整个唐朝所有五言诗,共计二十八万七千句,他也只能拿出两个这样的幻方。除了《风月清江夜》,只有一部,但意境却大相径庭,不能让他满意。在十三万五千六百行七言唐诗中,没有一首七言“幻方”符合这个规律。他只能退而求其次,只找对称的奇数项,即每句第1、3、5、7个字对称,偶数行换成空白行。放宽标准后,我们??可以找到不少,但如果要从中选出合乎节奏韵律、意味流畅的,那就不多了。最后,他选了一个正派的作为例子,在空行中加上这几个字,也可以写成对称矩阵:这位小弟,在学习传统文化的时候,学习了古洛书和璇玑图表灵感来自。△写成数的罗书罗是三阶幻方,其特点是每行、每列、每对角线上的数之和相等。没有文本求和这样的操作。如果按照程序员的思路,就是字符串是串联的,是相等的。这样就得到了要找的目标:第n行第n列的文本是一样的。璇玑图共841字,有顺读、倒读、横读、斜读、蛇读、交叉读、换行读、换行读、句间读。它总共包含7,958首诗。关键是,当以不同的顺序阅读时,单词可以组成有意义的诗句。他认为自己没有古人作诗的天赋,便想到从唐诗中寻找合格的诗句。并用现代的方法——编程来解决。用“暴力”统治这位小弟首先想到的是用电脑解“八皇后问题”,寻找符合要求的唐诗。八皇后问题,简单来说就是:在一个8×8的棋盘上,放置8个不同的皇后,使它们不能互相攻击,即它们在同一行、同一列、同一斜线上。释放方法。这个问题可以通过使用一种叫做“回溯法”的算法来解决。稍后搜索合适的诗句。比如计算机首先从13万行唐诗中随机找出《风月清江夜》这句诗句:根据对称矩阵原理,诗句第二行开头应以“月”开头:(诗句以月开头的应该还有不少,如月上的柳头)依此类推,诗的第三行开头应该以“清夜”为首:(以青叶少很多)和诗的第四行开头,应该以“江山归”开头:(江山归开头的诗……选择范围应该少)最后一行开头诗句必须和前4句诗的结尾一模一样,《深夜来客》:难度逐渐变成了地狱级别……在这几步操作中,如果任何一步不符合条件,你必须重新开始。在这种情况下,最初的第一步就显得尤为重要:开始遍历什么类型的诗句才能最快找到答案?他为此采用了启发式搜索,从已知的问题信息出发,对这些空白进行评估,找到限制最多的位置,也就是最容易“写”的位置,然后从这个位置开始找诗。如果专门写成代码来解决,就是用递归的结构。同时利用剪枝的方法缩小剩余位置的搜索范围。即利用约束函数,将扩展节点处不满足约束条件的子树剪掉;然后用极限函数剪掉不能得到最优解的子树。这样,可以降低问题的复杂度。但是,在运行代码时,笔者发现这样做效率不高。这种方法虽然可以解决“N”皇后问题,但不适用于求汉字矩阵。因为要填的格子有8个以上的皇后,每个格子有5000+个汉字可供选择!如果采用递归的方式,计算机在填入前面的汉字时,实际上是缩小了剩下的汉字可以查找的范围。如果一开始没找到正确的词,搜索到一半就会失去所有可用的行,还得重新猜,效率不升反降。我越想越烦躁,小哥索性一巴掌拍大腿:还不猛搜!当然,这不是普通的暴力搜索。会有两个查找条件:第一,以五言诗为例,第五列前4个字的内容与第五行前4个字的内容是否完全相同?如果不一样,就扔掉。△第五行第五列前四个字第二,这首诗是对称矩阵吗?如果没有,就把它扔掉。用C语言写完,一个小时内就能跑完所有的“对称诗”。作者表示自己不是文学研究专家,也不是算法专家,所以这种方式未必是最好的方式。如果你有更好的解决思路,可以来和他一起玩~作者介绍的是作者黄凌东,他在发布文言编程语言时还是卡内基梅隆大学本科生。现在已经毕业,我在母校的创意探究工作室担任研究助理,为博物馆和学校等组织开发互动媒体项目。这位小哥热爱编程和传统文化,还开发了一个写诗的IDE,可以自动检查等号和等号的规则,还内置了韵书和康熙辞典供参考??。它还可以通过机器学习分析用户的作品,并将其与《全唐诗》中的诗歌进行比较,看看你的诗歌像哪位诗人的风格。除了古诗词和散文,他对传统美术也颇有研究,开发了无限生成随机山水画和多种汉字的工具。△就是不知道山水画里为什么会有电线杆项目地址:https://github.com/LingDong-/magic-square-poems黄岭东主页:https://lingdong.works/
