← 文章 曆法術數

八字入門:從干支到五行,一個程序員的理解框架

嘗試用程序員的思維方式理解八字命理的底層邏輯——干支是枚舉,五行是類型系統,生克是依賴關係。

術數工具

基於 WebAssembly & 原生 iOS,探索星曆之美

我是先學會寫代碼,纔開始學八字的。

這個順序帶來了一個奇特的視角:當我第一次接觸幹支系統時,腦子裏浮現的不是「命運」,而是一個設計精妙的枚舉類型

干支:一個 60 進制的時間編碼系統

十天干(甲乙丙丁戊己庚辛壬癸)和十二地支(子醜寅卯辰巳午未申酉戌亥),兩兩組合,形成一個 60 個元素的循環序列——甲子、乙丑、丙寅……直到癸亥,然後回到甲子。

用代碼表達就是:

STEMS   = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
BRANCHES = ['子','醜','寅','卯','辰','巳','午','未','申','酉','戌','亥']

def get_ganzhi(n: int) -> str:
    return STEMS[n % 10] + BRANCHES[n % 12]

一個人的出生時刻,可以用四組干支(年柱、月柱、日柱、時柱)精確描述,這就是「八字」——四組干支,每組兩個字,共八個字。

五行:一個類型系統

五行(木火土金水)是干支的「類型標註」:

五行天干地支
甲、乙寅、卯
丙、丁巳、午
戊、己辰、戌、醜、未
庚、辛申、酉
壬、癸亥、子

五行之間有「生克」關係:木生火、火生土、土生金、金生水、水生木;木克土、土克水、水克火、火克金、金克木。

這是一個有向圖,每個節點既是某些節點的「生者」,也是某些節點的「克者」。

命盤:一個依賴關係分析

八字命理的核心,是分析這八個字(以及它們藏幹中隱含的更多五行信息)之間的生克關係,找出「用神」——即命盤中最需要補充或最需要抑制的五行。

這讓我想起軟件架構中的依賴分析:找出系統中的瓶頸節點,找出過度依賴的模塊,找出需要解耦的地方。


當然,命理學遠比這複雜。格局、神煞、大運流年……每一個維度都是一套獨立的分析體系。但從這個程序員視角出發,至少讓我找到了一個理解它的入口。

上方的「八字命盤」工具可以幫你生成完整的命盤數據,歡迎試用。