Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

那個用文言文編程的小哥竟從28萬行唐詩中找出了對稱矩陣

那個用文言文編程的小哥竟從28萬行唐詩中找出了對稱矩陣

2021-03-28 Comments 0 Comment

你能看出來,這首詩妙在哪裡嗎?其實,橫著讀是一首詩,豎著讀還是這首詩!而且,這首詩可不是亂編的,其中的詩句都來自《全唐詩》,讀起來也頗有意境。創造這個奇妙組合的,不是文學研究大師,而是一位程序員小哥。

他用計算機,找出了所有符合規律的古詩,還在Github上開源了代碼。

就連README文件,也頗具個性:

餘所用之程序,當以gcc編譯之如是gcc -O3 mgsq5.c -o mgsq5

等一下。這個風格好像很熟悉?

沒錯,這位程序員,正是之前開發了火遍全網的文言文編程語言的Huang Lingdong。

△ 文言文編程的“Hello,World”

他用數學中的3階幻方(九宮格)作比,把符合這種規律的詩命名為“唐詩幻方”。

然而,這首詩真正的玄妙之處,還不止在這裡。

玄妙之處

這首詩,初看只是橫豎都能讀,但如果把其中漢字編碼成數字再看的話,會發現:

原來,這是個對稱矩陣!

不過,他遍歷了全唐詩裡所有五言詩共二十八萬七千句後,也只能得出兩個這樣的幻方。

除了“風月清江夜”以外,還只有一個,不過意境上差了許多,不能令他滿意。

在135600行七言唐詩中,符合這個規律的七言“幻方”,更是一個都沒有。

他只能退而求其次,只尋找奇數項對稱的,即每句第1、3、5、7個字對稱,偶數行用空行代替。

放寬標准後倒是能找出不少,但再想從其中挑選符合音韻格律、意思上還通順的,就不多了。

最後,他選擇了其中一個還稍微過得去的做例子,把空行中的字也加上,也能寫成對稱矩陣:

這位小哥,是在研究傳統文化時,從古代的洛書和璇璣圖中獲得的靈感。

△洛書

洛書寫成數字就是三階幻方,特點是每一行、每一列及對角線中的數字之和都相等。

文字沒有求和這種操作,如果按照程序員思維,那就是字符串拼接起來相等。

就這樣,得出了要尋找的目標:第n行和第n列的文字相同。

璇璣圖中共841個字,按順讀、逆讀、橫讀、斜讀、蛇行讀、交叉讀、換行讀、換列讀、間句讀都能成詩,總共包含了7958首詩。

其中的關鍵之處在於,按照不同順序讀,其文字都能組成有意義的詩句。他自認沒有古人作詩的才華,就想到從唐詩中尋找符合條件的詩句。

而且是用現代人的方法——編程來解決。

以“暴力”治之

這位小哥,先是想到了用“八皇后問題”的計算機解法,來找出符合要求的唐詩。

八皇后問題,簡單來說是這樣的:

8 x 8的國際象棋棋盤上,擺放8個不同的皇后,使其不能互相攻擊,即處在同一行、同一列、同一斜線上,求解擺放方法。

這個問題,可以用到一種名為“回溯法”的算法來求解,原理如圖:

如果用回溯法來找“幻方”,計算機需要先隨機“找出半句詩”,再挨個兒往後面搜索合適的詩句。

例如,計算機先從13萬行唐詩中,隨機找出詩句“風月清江夜”:

根據對稱矩陣的原理,第二句詩的開頭,就應該以“月”為首:

(以月開頭的詩句,應該還是有不少的,像月上柳梢頭)

以此類推,第三句詩的開頭,就應該以“清夜”為首:

(以清夜開頭的詩句,就少了許多)

而第四句詩的開頭,就應該以“江山歸”打頭:

(江山歸開頭的詩……可選範圍應該更少了)

最後一句詩的開頭,就必須與前4句詩的結尾完全一致,“夜深來客”:

難度逐漸變成地獄級……

在這幾步操作中,要是有任何一步無法滿足條件,就得全部推倒重來。

這樣的話,最初的第一步,就顯得尤為重要:從什麼類型的詩句開始遍歷,才能最快地找到答案?

他為此用上了啟發式搜索,從已知問題信息入手,對這些空格進行評估,找到限制條件最多、即最容易“下筆”的那個位置,再從這個位置開始找詩。

具體寫成代碼求解的話,就是利用遞歸法的結構。

同時,用上剪枝法,縮小剩下位置的查找範圍。

也就是說,要用到約束函數,在擴展節點處剪去不滿足約束條件的子樹;再用限界函數,剪去得不到最優解的子樹。

這樣一來,就能降低問題複雜度。

然而在運行代碼時,作者卻發現,這樣做效率並不高。

這種方法,雖然可以求解“N”皇后問題,卻不太適合求漢字矩陣。

因為,要填進格子裡的,可不止8個皇后,每一格可以填的漢字,就有5000+種選擇!

採用遞歸法的話,計算機在填上前面的漢字時,實際上就縮小了剩下漢字可以搜查的範圍。

如果沒有找到最初那個合適的字,往往搜到一半後,能用的詩句就沒了,又得重新再猜,效率不升反降。

越想越煩躁,這位小哥乾脆一拍大腿:不如暴力搜索!

當然,也不是普通的暴力搜索。

會有兩個搜索條件:

其一,以五言詩為例,第五列的前4個字,和第五行的前4個字,內容是否完全一樣?如果不一樣,就扔掉。

△ 第五行和第五列的前4個字

其二,這首詩是不是對稱矩陣?不是的話,就扔掉。

利用C語言寫好後,不用1小時就能跑出所有的“對稱詩”。

作者表示,自己並非文學研究的專家,也不是算法專家,因此,這種方法可能並不是最好的辦法。

諸君若有更好的求解思路,可以來找他玩耍~

作者介紹

作者Huang Lingdong,在發布文言文編程語言時還在卡耐基梅隆大學上本科。現在已畢業,在母校的Studio for Creative Inquiry做研究助理,為博物館和學校等組織開發交互媒體項目。

這位小哥熱愛編程和傳統文化,還開發過寫詩IDE,能自動檢查平仄等格律規則,內置韻書和康熙字典做參考。

還能通過機器學習分析用戶作品,並與《全唐詩》中的詩句做比對,看你寫的詩像哪位詩人的風格。

除了詩詞古文,他對傳統美術也頗有研究,開發過無限生成隨機山水畫的工具,和多款中文字體。

△就是不知道為什麼山水畫裡有個電線桿

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


網絡資訊

Post navigation

PREVIOUS
你生日在圓周率第幾位?北大查詢服務上線公眾號被玩崩了
NEXT
大疆Mavic Air 2S無人機曝光:續航、圖傳進一步增強

發表迴響取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
WordPress資訊
WeChat資訊
PHP資訊
教學資源
開源程序
網頁工具
SEO工具
醫療健康
其他資訊
Content from
Content to
2021 年 3 月
一 二 三 四 五 六 日
1234567
891011121314
15161718192021
22232425262728
293031  
« 2 月   4 月 »

分類

  • 網站公告
  • 限時免費
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 其他資訊

彙整

近期文章

  • SpaceX在德克薩斯州炸毀一個油箱為星際飛船飛行測試做準備 2023-09-23
  • 智力的共振:複雜聲樂學習可預測鳴禽解決問題的能力和腦容量 2023-09-23
  • 體驗蘋果iOS 17健康護眼功能:最簡單有效預防眼睛疲勞和近視的方法 2023-09-23
  • 華為Mate 60 RS真機洩露 2023-09-23
  • 高通宣布推出10G光纖+Wi-Fi 7家用閘道平台實現終極家庭互聯效能 2023-09-23
  • 放大RNA的潛力:麻省理工學院工程師設計出更強大的疫苗 2023-09-23
  • 國際太空站本週進行了太空園藝、太空服準備和返回訓練 2023-09-23
  • X射線電腦視覺揭示前所未有的鋰電池物理和化學細節 2023-09-23
  • 索尼發布便攜式動作捕捉產品mocopi 可驅動3D虛擬形象 2023-09-23
  • 彎曲與刮痕測試顯示蘋果在iPhone 15 Pro Max中使用鈦金屬的決定可能適得其反 2023-09-23

熱門文章與頁面︰

  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • Autodesk AutoCAD 2021 正式版註冊版-簡體/繁體中文/英文版
  • 鳥寶寶有多內捲?為了讓父母投餵自己長出恐怖的嘴巴
  • 讓WIN10去強制縮放那些不支援DPI縮放的軟體或遊戲
  • 威力導演Cyber​​Link PowerDirector Ultimate v19.0.2108.0 破解版
  • 世界上有多少個國家
  • Google Chrome瀏覽器意外出現Status_Access_Violation錯誤而崩潰
  • 高刷屏比低刷屏強多少?用UFO Test工具一目了然
  • 貝貝BiliBili – 在線一鍵下載B站視頻,可解析播放!
  • 英國大學生設計出適用於盲人的手持式設備可被當成機器導盲犬

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.