六十甲子納音只用一條「干數加支數、超過 5 就減 5」的算術,就能對上標準納音表 30 組名稱的五行字尾,60 個干支全部吻合(自算)。這條算法也解釋了為什麼納音總是兩個干支共用一個名稱,以及為什麼五行各占 6 組、不偏不倚。

先交代資料層級:算法與數字配對來自一次網路搜尋的摘要,來源是現代通俗文章(搜狐易學堂、博客園、天機曜等),我沒有讀到全文,更沒有核對《三命通會》等古籍原文;30 個納音名稱則是我依通行表格自行列出,並非從某一頁面逐字抄錄。本文只談算術結構,不涉及命理判斷。

📖 學

算法本身

搜尋摘要給出的規則如下:天干甲乙為 1、丙丁為 2、戊己為 3、庚辛為 4、壬癸為 5;地支子丑午未為 1、寅卯申酉為 2、辰巳戌亥為 3。兩數相加,和大於 5 就減 5,結果對應五行:1 木、2 金、3 水、4 火、5 土。以甲子為例,1 加 1 得 2,是金,與「海中金」相符;庚辰是 4 加 3 得 7,減 5 得 2,也是金,與「白蠟金」相符。摘要同時提到,不同來源的數字配對並不統一,有的把水火木金土配成 1 到 5,因此直接套用某一版口訣前,應先用標準表核對。

全表驗證

我把六十個干支依序代入(自算),並與通行的 30 個納音名稱(海中金、爐中火、大林木……大海水)比對,只看名稱最後一字的五行。結果 60 個干支全部相符,沒有一個例外。要注意的是,這只驗證「五行字尾」,不涉及名稱中的意象部分(例如為什麼甲子是海中、庚辰是白蠟),那一半是取象,沒有算術可驗。換句話說,這條算法能重現五行,但重現不了名字。

為什麼兩個干支同名

天干順序是甲乙、丙丁各共用一個數,地支則是子丑、寅卯各共用一個數,而六十甲子每走一步,干與支同時各前進一格。相鄰的兩個干支裡,通常只有一邊的數跳級,另一邊維持不變,又因為模 5 的循環,使得第奇數與第偶數個干支落在同一個五行上。我以程式檢查了 30 組相鄰配對(自算),每一組的五行都相同,所以 60 個干支恰好併成 30 個納音。

五行均分

再數五行分布:30 個納音中,金、木、水、火、土各 6 組(自算),換成 60 個干支就是各 12 個。這不是巧合,而是前面那組數字配對的結果:干數與支數相加後再取模 5,在完整的六十甲子循環中,每個餘數出現的次數相等。

🧠 記

  • 納音算法:干數加支數,大於 5 就減 5,1 木、2 金、3 水、4 火、5 土;各來源的配數口訣不盡一致,以標準表核對。
  • 干數:甲乙 1、丙丁 2、戊己 3、庚辛 4、壬癸 5;支數:子丑午未 1、寅卯申酉 2、辰巳戌亥 3。
  • 60 個干支對標準納音表的五行字尾全部吻合(自算),算法只重現五行,不重現名稱中的意象。
  • 相鄰兩個干支五行相同,30 組同名;五行各 6 組,共 12 個干支(自算)。
  • 資料層級:算法為搜尋摘要的二手轉述,未核對古籍原文,納音名稱為作者依通行表列出。

✍️ 實踐

用十分鐘寫程式驗證:建立兩個長度為 10 與 12 的陣列放干數與支數,迭代 60 次,輸出五行。可證偽的預測:預測一,輸出與你手邊的納音表逐項比對,五行字尾應 60 個全中;若出現錯誤,先檢查是否把 1 到 5 的五行配對寫成別的版本。預測二,把 60 個結果兩兩一組,每組五行必定相同;若不同,多半是地支計數起點錯了一格。預測三,統計五行次數,應該各 12 個。最後挑一個自己的出生年份,只拿來練習算出納音五行,不解讀其意義。

🔗 延伸學習

💬 問 AI

我在研究六十甲子納音的算術結構。請嚴格區分三類資訊:(A)我貼給你的;(B)你能指出具體出處(書名+作者+篇章)的;(C)你自己的推論。不確定就寫「不確定」,不要編造原文、連結或數字。
 
我貼的資料(皆為我依通俗規則自己寫程式算的):
1. 干數:甲乙 1、丙丁 2、戊己 3、庚辛 4、壬癸 5;支數:子丑午未 1、寅卯申酉 2、辰巳戌亥 3;兩數相加大於 5 就減 5,1 木、2 金、3 水、4 火、5 土。
2. 依此算出的 60 個五行,與標準 30 個納音名稱的五行字尾全部吻合;相鄰兩個干支五行相同;五行各 6 組。
 
請回答:
1. 逐步驗算我的第 2 項,指出若有錯在哪裡。
2. 這套「數字相加減 5」的口訣,你能指出的最早具體出處是什麼?沒把握請明說。
3. 為什麼相鄰干支會同五行?請用模運算說明,不要只重述結果。
 
本題純屬算術與文獻學習,不涉及命理或預測個人運勢。