六十甲子納音只用一條「干數加支數、超過 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 個。最後挑一個自己的出生年份,只拿來練習算出納音五行,不解讀其意義。
🔗 延伸學習
- 巧記六十甲子納音五行(搜狐易學堂):通俗來源,說明數字配對與相加減 5 的做法;本文只讀到搜尋摘要,未讀全文。
- 六十花甲子納音表中的五行是怎麼算出來的(博客園):搜尋結果列出的文章,僅見標題與摘要,未讀全文,數字配對是否與本文一致請自行核對。
💬 問 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. 為什麼相鄰干支會同五行?請用模運算說明,不要只重述結果。
本題純屬算術與文獻學習,不涉及命理或預測個人運勢。