← 記事 古典文化と術数 · エッセイ

八字入門:十干十二支から五行まで、プログラマー的思考による理解フレームワーク

プログラマーの思考法で八字命理の根底にあるロジックを理解してみる——十干十二支は列挙型、五行は型システム、生剋は依存関係。

私はコードを書くことを先に覚えてから、八字を学び始めた。

この順番のおかげで、ちょっと変わった視点を持つことになった。初めて十干十二支に触れたとき、頭に浮かんだのは「運命」ではなく、よく設計された列挙型だった。

十干十二支:60進数の時間エンコードシステム

十干(甲乙丙丁戊己庚辛壬癸)と十二支(子丑寅卯辰巳午未申酉戌亥)を順番に組み合わせると、60個の要素を持つ循環シーケンスになる——甲子、乙丑、丙寅……癸亥まで来ると、また甲子に戻る。

これをコードで表現すると:

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

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

人の生まれた瞬間は、四組の十干十二支(年柱、月柱、日柱、時柱)で正確に記述できる。これが「八字」だ——四組の十干十二支、それぞれ二文字ずつ、全部で八文字。

五行:型システム

五行(木火土金水)は、十干十二支の「型注釈」のようなものだ:

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

五行の間には「生剋」の関係がある。木は火を生じ、火は土を生じ、土は金を生じ、金は水を生じ、水は木を生じる。また、木は土に克ち、土は水に克ち、水は火に克ち、火は金に克ち、金は木に克つ。

これは有向グラフだ。どのノードも、あるノードにとっての「生じる側」であると同時に、別のノードにとっての「克つ側」でもある。

命盤:依存関係の分析

八字命理の核心は、この八文字(そしてそれらの蔵干に隠れているさらなる五行情報)の間の生剋関係を分析し、「用神」——つまり命盤の中で最も補うべき、あるいは最も抑えるべき五行——を見つけ出すことにある。

これはソフトウェアアーキテクチャにおける依存関係の分析を思い起こさせる。システムのボトルネックになるノードを見つけ、依存しすぎているモジュールを見つけ、結合を解くべき箇所を見つける。


もちろん、命理学はこれよりもはるかに複雑だ。格局、神煞、大運流年……どの次元にも独立した分析体系がある。しかし、このプログラマー的視点から始めたおかげで、少なくとも一つの入り口を見つけることはできた。

上の「八字命盤」ツールで、完全な命盤データを生成できる。ぜひ試してみてほしい。