八字入門:十干十二支から五行まで、プログラマー的思考による理解フレームワーク
プログラマーの思考法で八字命理の根底にあるロジックを理解してみる——十干十二支は列挙型、五行は型システム、生剋は依存関係。
私はコードを書くことを先に覚えてから、八字を学び始めた。
この順番のおかげで、ちょっと変わった視点を持つことになった。初めて十干十二支に触れたとき、頭に浮かんだのは「運命」ではなく、よく設計された列挙型だった。
十干十二支:60進数の時間エンコードシステム
十干(甲乙丙丁戊己庚辛壬癸)と十二支(子丑寅卯辰巳午未申酉戌亥)を順番に組み合わせると、60個の要素を持つ循環シーケンスになる——甲子、乙丑、丙寅……癸亥まで来ると、また甲子に戻る。
これをコードで表現すると:
STEMS = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
BRANCHES = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']
def get_ganzhi(n: int) -> str:
return STEMS[n % 10] + BRANCHES[n % 12]
人の生まれた瞬間は、四組の十干十二支(年柱、月柱、日柱、時柱)で正確に記述できる。これが「八字」だ——四組の十干十二支、それぞれ二文字ずつ、全部で八文字。
五行:型システム
五行(木火土金水)は、十干十二支の「型注釈」のようなものだ:
| 五行 | 十干 | 十二支 |
|---|---|---|
| 木 | 甲、乙 | 寅、卯 |
| 火 | 丙、丁 | 巳、午 |
| 土 | 戊、己 | 辰、戌、丑、未 |
| 金 | 庚、辛 | 申、酉 |
| 水 | 壬、癸 | 亥、子 |
五行の間には「生剋」の関係がある。木は火を生じ、火は土を生じ、土は金を生じ、金は水を生じ、水は木を生じる。また、木は土に克ち、土は水に克ち、水は火に克ち、火は金に克ち、金は木に克つ。
これは有向グラフだ。どのノードも、あるノードにとっての「生じる側」であると同時に、別のノードにとっての「克つ側」でもある。
命盤:依存関係の分析
八字命理の核心は、この八文字(そしてそれらの蔵干に隠れているさらなる五行情報)の間の生剋関係を分析し、「用神」——つまり命盤の中で最も補うべき、あるいは最も抑えるべき五行——を見つけ出すことにある。
これはソフトウェアアーキテクチャにおける依存関係の分析を思い起こさせる。システムのボトルネックになるノードを見つけ、依存しすぎているモジュールを見つけ、結合を解くべき箇所を見つける。
もちろん、命理学はこれよりもはるかに複雑だ。格局、神煞、大運流年……どの次元にも独立した分析体系がある。しかし、このプログラマー的視点から始めたおかげで、少なくとも一つの入り口を見つけることはできた。
上の「八字命盤」ツールで、完全な命盤データを生成できる。ぜひ試してみてほしい。