本命宿算法為什麼不同
內容版本 · · 資料與出處
兩個網站給出的本命宿不同,先看它們走的是「月日查表」還是「月亮黃經分區」。用一次 799/800 角分的演算、兩份資料的對照和一張核查單,找到最先出現分歧的那一步。
閱讀提要約 6 分鐘讀完
兩個網站的宿名不同,先分清它們回答的是「查月日表」還是「按月亮黃經分區」。這是兩個不同的問題,輸入鏈本來就不一樣。
- 月日查表要的是曆法轉換、月日序號和一張表;黃經分區要的是確定的時刻、月亮黃經和聲明過的坐標起點。
- 國立天文臺的二十七分法每段 13 度 20 分,即 800 角分:799 角分在第 1 區,800 角分進入第 2 區。
- 「都依據《宿曜經》」不夠:兩份資料裡正月初一的格子分別是室宿和虛宿。核對時記下最先分歧的那一步,缺資料就寫「未確認」。

前置閱讀
為什麼同一個生日會得到兩個宿名
網站甲說你是室宿,網站乙說是虛宿。很自然的反應,是讀兩段性格描述,挑更像自己的那個。但這樣選出來的是喜歡的解釋,不是核對過的算法。
要查差異,第一步是保存輸入和規則:生日用的是哪種曆法,日期怎樣轉換,用了哪張表,或者是不是按月亮的位置分區。先把結果暫記為「甲法」「乙法」,比過早認定誰才是真實的自己,更容易找到可以復算的原因。
輸入路徑對照,不是優劣排名:兩條路要的證據不同,結果不能直接比較。
「都叫二十七宿」,不等於同一套計算
宿的名單
參與排列的宿是哪些。
月初起宿
每個月從哪一宿開始。
日期換算
生日怎樣轉成所用曆法的月日。
分區起點
黃經從哪裡開始量。
兩條路,要的證據不同
月日查表法先取得所用曆法的月份和日序,再由起宿表與推進規則得到標簽。按黃經分區的方法則需要某個時刻的月亮黃經,並明確坐標起點,再判斷它落在哪個區間。
放大圖解 · 可橫向滑動查看
查表需要曆法轉換、月日序號和對應的表;分區需要確定的時刻、月亮黃經和聲明過的坐標約定。
演算一遍:799 與 800 角分
國立天文臺的 Nakṣatra 條目說明了一種二十七等分:一周 360 度,每段 13 度 20 分。換成角分,360 × 60 ÷ 27 = 800,每段正好 800 角分。
放大圖解 · 可橫向滑動查看
下面做一個純算術練習:假定黃經已經換成該分區所需的坐標,把第一段記為第 1 區,區間包含起點、不含終點。
放大圖解 · 可橫向滑動查看
同一個書名,不等於同一張表
即使都做「月日查表」,只寫「依據《宿曜經》」也不是完整的規格。看一個具體例子:兩份資料裡兩個明確標出的格子。
放大圖解 · 可橫向滑動查看
工具的說法,要復現需要什麼
要復現,需要
所用的表及版本,或有出處的改訂規則。
要復現,需要
輸入的曆法,以及轉換後的月、日。
要復現,需要
採用的時刻、坐標設置與區間方案。
要復現,需要
寫明的閏月規則,而不是猜出來的默認值。
核查單:停在第一個分歧的那一步
遇到真實的分歧,按順序留四行記錄;哪一步缺資料,就在那一步寫「未確認」。
放大圖解 · 可橫向滑動查看
兩站都說查表,但其中一站不公布月初表時,只憑輸出倒推不出它用了哪份古籍。這樣日期換算不同、表不同和程序出錯,才能分別定位;同一臺鐘讀數相同,若時區假設不同,也可能指向不同的時刻。
重現了宿名的算法,並不證明性格或關係的說法成立。想分清日曆上的當日宿和本命宿,可讀本命宿與當日宿,日曆格的讀法見宿曜日曆怎麼讀。
讀完常有的疑問
為什麼兩個網站給出的本命宿會不一樣?
最常見的原因是兩個站走了不同的路:一個按月日查表,一個按月亮的黃經分區。就算同樣查表,用的曆法轉換、月初起宿和閏月處理也可能各不相同。
兩個站都說依據《宿曜經》,結果還會不同嗎?
會。同一個書名下可以有不同的表和版本:國立天文臺暦Wiki的二十七宿表把正月初一配為室宿,CBETA 電子本的「大唐月建圖」正月一日是虛宿。不能只憑書名斷定兩站用了同一張表。
能不能讀兩段性格描述,挑更像自己的那個?
不能。這樣選出來的是自己喜歡的解釋,不是核對過的算法。即使把宿名算對了,也不能證明後面的性格或關係說法成立,那是另一個獨立的問題。
這篇文章對你有幫助嗎?
所在學習路徑
宿曜:從本命宿到關係邊界 · 第 3 步 / 共 3 步已上線


