八字入門:從干支到五行,一個程序員的理解框架
嘗試用程序員的思維方式理解八字命理的底層邏輯——干支是枚舉,五行是類型系統,生克是依賴關係。
我是先學會寫代碼,纔開始學八字的。
這個順序帶來了一個奇特的視角:當我第一次接觸幹支系統時,腦子裏浮現的不是「命運」,而是一個設計精妙的枚舉類型。
干支:一個 60 進制的時間編碼系統
十天干(甲乙丙丁戊己庚辛壬癸)和十二地支(子醜寅卯辰巳午未申酉戌亥),兩兩組合,形成一個 60 個元素的循環序列——甲子、乙丑、丙寅……直到癸亥,然後回到甲子。
用代碼表達就是:
STEMS = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
BRANCHES = ['子','醜','寅','卯','辰','巳','午','未','申','酉','戌','亥']
def get_ganzhi(n: int) -> str:
return STEMS[n % 10] + BRANCHES[n % 12]
一個人的出生時刻,可以用四組干支(年柱、月柱、日柱、時柱)精確描述,這就是「八字」——四組干支,每組兩個字,共八個字。
五行:一個類型系統
五行(木火土金水)是干支的「類型標註」:
| 五行 | 天干 | 地支 |
|---|---|---|
| 木 | 甲、乙 | 寅、卯 |
| 火 | 丙、丁 | 巳、午 |
| 土 | 戊、己 | 辰、戌、醜、未 |
| 金 | 庚、辛 | 申、酉 |
| 水 | 壬、癸 | 亥、子 |
五行之間有「生克」關係:木生火、火生土、土生金、金生水、水生木;木克土、土克水、水克火、火克金、金克木。
這是一個有向圖,每個節點既是某些節點的「生者」,也是某些節點的「克者」。
命盤:一個依賴關係分析
八字命理的核心,是分析這八個字(以及它們藏幹中隱含的更多五行信息)之間的生克關係,找出「用神」——即命盤中最需要補充或最需要抑制的五行。
這讓我想起軟件架構中的依賴分析:找出系統中的瓶頸節點,找出過度依賴的模塊,找出需要解耦的地方。
當然,命理學遠比這複雜。格局、神煞、大運流年……每一個維度都是一套獨立的分析體系。但從這個程序員視角出發,至少讓我找到了一個理解它的入口。
上方的「八字命盤」工具可以幫你生成完整的命盤數據,歡迎試用。