文字没有求和这种操作,如果按照程序员思维,那就是字符串拼接起来相等。
就这样,得出了要寻找的目标:第n行和第n列的文字相同。
璇玑图中共841个字,按顺读、逆读、横读、斜读、蛇行读、交叉读、换行读、换列读、间句读都能成诗,总共包含了7958首诗。
其中的关键之处在于,按照不同顺序读,其文字都能组成有意义的诗句。他自认没有古人作诗的才华,就想到从唐诗中寻找符合条件的诗句。
而且是用现代人的方法——编程来解决。
以“暴力”治之这位小哥,先是想到了用“八皇后问题”的计算机解法,来找出符合要求的唐诗。
八皇后问题,简单来说是这样的:
8×8的国际象棋棋盘上,摆放8个不同的皇后,使其不能互相攻击,即处在同一行、同一列、同一斜线上,求解摆放方法。
这个问题,可以用到一种名为“回溯法”的算法来求解,原理如图:
如果用回溯法来找“幻方”,计算机需要先随机“找出半句诗”,再挨个儿往后面搜索合适的诗句。
例如,计算机先从13万行唐诗中,随机找出诗句“风月清江夜”: