陳胤辰中原商設
首頁
簡介
講師介紹開課資訊
課程
運算思維與程式設計自然科學與人工智慧程式語言導論
互動
物品交換三門問題下注模擬器數字推盤河內塔
編程
線上編程P5.js
應用
人體系統玄學系統建築系統

語言

繁體中文简体中文English

陳胤辰

中原大學商業設計系
資宸科技

快速連結

  • 講師介紹
  • 開課資訊
  • 互動遊戲
  • 程式教學
  • 文章

聯絡 & 社群

© 2026 陳胤辰。保留所有權利。

Built with Next.js & Tailwind CSS

🌌 系統概論🔮 排盤引擎📊 資料結構⚡ 四化狀態機🤖 規則引擎

玄學系統 · 資料結構

十二宮位 — 環狀陣列與模數運算

「安命宮」的邏輯就是 % 12。調整生月與時辰,看命宮如何在陣列中跳動。

6 月
未時 (idx=7)
子(0)午(6)亥(11)
步驟演示 0/5

命宮演算法

命宮 index=(12+ 生月(6)+ 2− 時辰(7)+ 1)%12= 2

1D 環狀陣列 [0…11] — 地支索引

idx=0子
idx=1丑
idx=2寅命宮
idx=3卯
idx=4辰
idx=5巳
idx=6午
idx=7未
idx=8申
idx=9酉
idx=10戌
idx=11亥

2D 命盤網格(同一資料,不同視圖)

子福德
丑父母
寅命宮★
卯兄弟
辰夫妻
巳子女
午財帛
未疾厄
申遷移
酉交友
戌官祿
亥田宅
本命
資訊

資料結構對應

12 地支 = size-12 的環狀陣列 (Circular Array)

安命宮 ≡ 模數定址

const branches = [
  "子","丑","寅","卯","辰","巳",
  "午","未","申","酉","戌","亥"
];

// 2. 命宮演算法 (農曆月、農曆時)
// 寅月是起點(index=2),逆數時辰
function getMainPalace(
  lunarMonth: number,
  hourIndex: number
): number {
  return (12 + lunarMonth + 2
            - hourIndex + 1) % 12;
}

// 3. 這就是 Modulo 定址!
// 無論生月/時怎麼加減,
// % 12 確保結果永遠落在 [0,11]

陣列索引 vs 宮位名稱

宮名由命宮位置决定,偏移量查表即可:

const PALACES = [
  "命宮","兄弟","夫妻",
  "子女","財帛","疾厄",
  "遷移","交友","官祿",
  "田宅","福德","父母"
];

function getPalaceName(
  branchIdx: number,
  mainIdx: number
): string {
  return PALACES[
    (12 - mainIdx + branchIdx) % 12
  ];
}

關鍵洞察

→

命盤本質是一個 size=12 的環狀陣列,每個元素(宮位)存放一組星曜(物件)

→

安星訣 = Modulo Arithmetic(同餘運算),確保索引不溢出

→

2D 網格只是 1D 環狀陣列的 視圖(View),底層資料一致

→

天干地支 60 甲子 = 10 × 12 的最小公倍數哈希空間