← 文章 玄学笔记

八字入门:从干支到五行,一个程序员的理解框架

尝试用程序员的思维方式理解八字命理的底层逻辑——干支是枚举,五行是类型系统,生克是依赖关系。

術數工具

基于 WebAssembly,本地演算,无需联网

我是先学会写代码,才开始学八字的。

这个顺序带来了一个奇特的视角:当我第一次接触干支系统时,脑子里浮现的不是「命运」,而是一个设计精妙的枚举类型

干支:一个 60 进制的时间编码系统

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

用代码表达就是:

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

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

一个人的出生时刻,可以用四组干支(年柱、月柱、日柱、时柱)精确描述,这就是「八字」——四组干支,每组两个字,共八个字。

五行:一个类型系统

五行(木火土金水)是干支的「类型标注」:

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

五行之间有「生克」关系:木生火、火生土、土生金、金生水、水生木;木克土、土克水、水克火、火克金、金克木。

这是一个有向图,每个节点既是某些节点的「生者」,也是某些节点的「克者」。

命盘:一个依赖关系分析

八字命理的核心,是分析这八个字(以及它们藏干中隐含的更多五行信息)之间的生克关系,找出「用神」——即命盘中最需要补充或最需要抑制的五行。

这让我想起软件架构中的依赖分析:找出系统中的瓶颈节点,找出过度依赖的模块,找出需要解耦的地方。


当然,命理学远比这复杂。格局、神煞、大运流年……每一个维度都是一套独立的分析体系。但从这个程序员视角出发,至少让我找到了一个理解它的入口。

上方的「八字命盘」工具可以帮你生成完整的命盘数据,欢迎试用。