算命学ロジック完全仕様 の付録。このアプリの規則は文献からではなく、実在する算命学アプリの出力を観測して逆算したもの。その経緯を残す。
本編(共有ページ)
観測した生のHTMLは他サイトのデータなので載せていない。観測結果(JSON)と抽出スクリプトは元リポジトリの research/・tests/ にある。規則そのものは本編にすべて書き起こしてあるので、再現にこの付録は要らない。根拠を確かめたいとき用。
| 観測元 | 何を見たか | 結果 |
|---|---|---|
| kantei-app.com | 陰占・陽占・大運・数理法(165ケース) | 全項目一致 |
sanmei-stock.com(高尾式 school=1) |
伴星・六親法・才能 | 六親法 4102項目/才能 176日 一致 |
research/README.md(原文)算命学の計算規則を、実在アプリの出力から割り出した記録
このアプリの計算は、文献ではなく実際に動いている算命学アプリの出力を観測して規則を逆算したもの。
流派差が大きく、文献だけでは正解を1つに決められなかったため。
観測元は2つ。
school=1 が高尾式(既定)生のHTMLはリポジトリに含めない(他サイトのデータのため)。ここに置いてあるのは、
そこから抽出した観測結果(JSON)と、抽出・分析に使ったスクリプト。
| ファイル | 中身 |
|---|---|
observed_sainou.json |
才能の観測 176件。日干支・人体図・剋数・型・運 |
observed_rokushin.json |
六親法の観測 221件(男性)。規則を割り出すのに使ったぶん |
observed_rokushin_val.json |
六親法の追試 72件(女性49・男性23)。規則を決めたあとに別の日付で取り直したぶん |
rokushin_model.cjs |
六親法の設定(辿り方・定位置の解釈など)を総当たりして観測に合うものを探す |
rokushin_validate.py |
追試ぶんを取得する |
obs_zokan.json / obs_zokan2.json / obs_gaps.json |
蔵干の区分を1日刻みで観測した記録 |
stock_probe.py |
sanmei-stock に POST して命式を取得・パースする |
sainou_probe.py |
才能セクション(剋数・型・運)を抽出して統計を取る |
rokushin.py |
六親法(家系図)を抽出する |
collect.py |
サンプルをまとめて取得する |
取得結果は tests/_cache/ と research/_cache/ にたまる(どちらも .gitignore 済み)。
相手のサーバーに負荷をかけないよう、リクエストは3秒間隔・リトライ2回にしてある。
節入りからの経過日数で初元・中元・本元を切り替える。年支・月支・日支すべて同じ経過日数で引く。
支によって段数が違うのがこの表の特徴。
| 段数 | 支 | 区分(節入り日を1日目とする) |
|---|---|---|
| 1段 | 子・卯・酉 | 常に 癸 / 乙 / 辛 |
| 2段 | 午 | 己(〜20日)→ 丁(21日〜) |
| 2段 | 亥 | 甲(〜13日)→ 壬(14日〜) |
| 3段 | 丑・辰・未・戌 | 初元(〜10日)→ 中元(11〜13日)→ 本元(14日〜) |
| 3段 | 寅 | 戊(〜8日)→ 丙(9〜15日)→ 甲(16日〜) |
| 3段 | 巳 | 戊(〜6日)→ 庚(7〜15日)→ 丙(16日〜) |
| 3段 | 申 | 戊(〜11日)→ 壬(12〜14日)→ 庚(15日〜) |
陽男陰女は順行、陰男陽女は逆行。立運は節入りまでの日数÷3を四捨五入し、上限10歳。
月柱の次(逆行なら前)の干支から10年ごと。
28元(天干3つ+各支の蔵干3段すべて)それぞれについて、命式の3つの支との
十二大従星の点数を合計する。干ごとに集計=数理法、五行にまとめ=八門法。
観測だけでは割り出せず、サイト自身の解説ページ(/applied/six-parent-law/)に手順が
書いてあったのでそれを読んで実装した。293日 × 家族7人 × 2値 = 4102項目すべて一致。
理想の干は日干から関係だけで決まる。
| 家族 | 求め方 |
|---|---|
| 母親 | 日干を生じる五行で、日干と陰陽が逆の干(正母=玉堂星) |
| 父親 | 母親の干の干合相手 |
| 兄弟 | 日干と同じ干 |
| 姉妹 | 日干と同五行で陰陽が逆の干 |
| 配偶者 | 日干の干合相手 |
| 子供 | 妻の干が生じる干。妻と陰陽が同じなら女児、逆なら男児(男性は配偶者が妻、女性は自分が妻) |
実際の干は、陰占(天干3つ+各支の蔵干全段)の中を次の順に探す。同じ干を何人が使ってもよい(消費しない)。
| 家族 | 第一優先 | 第二優先 | 最終(定位置) |
|---|---|---|---|
| 母親 | 正母(玉堂星) | 偏母(龍高星) | 年支の本元 |
| 父親 | 実際に見つかった母の干の干合相手 | その恋人の干 | 年干 |
| 兄弟姉妹 | 理想の干のみ | — | なし(代わりをとらない) |
| 配偶者 | 日干の干合相手 | その恋人の干 | 日支の本元 |
| 子供 | 実際に見つかった妻の干が生じる干 | — | 使わない |
恋人の干=干合相手の陰陽を逆にした干。
外しやすい点が3つある。ここを間違えると 75〜85% で頭打ちになる。
陰占の定位置は、解説ページの本文と表が食い違っている(本文は父=月干・母=月支本元)。
実例の記述も実際の出力も表のほうと一致したので、表を採った。
| 柱 | 日 | 月 | 年 |
|---|---|---|---|
| 天干 | 自分 | 子供 | 父親 |
| 蔵干(本元) | 配偶者 | 家系 | 母親 |
どの段階で見つかったかが、そのまま縁の深さになる(第一優先で見つかる家族とは縁が深く、
定位置まで落ちた家族とは接点が薄い)。
性別では結果が変わらない。 解説には「日干が女性なら日干自身が妻なので、日干が生じる干が子供」
と書いてあるが、実際の出力は女性でも配偶者の干から子供を辿っていた(女性49日ぶんで確認)。
解説文と実装が食い違っている箇所なので、出力のほうに合わせている。
検証は tests/verify_rokushin.cjs。規則を割り出した221日(男性)に加えて、
規則を決めたあとに取り直した72日(女性49+男性23・別の日付)でも全項目一致したので、
観測に合わせ込んだだけの式ではないと確認できた。合計293日 × 7人 × 2値 = 4102項目。
剋数=伴星を除く主星5つの中で「自分が剋す数」+「自分が剋される数」。
並びは 東(社会)・西(配偶者)・中央(中心)・北(目上)・南(目下)。
剋数が最も多い星が才能星。176件で剋数・型とも全一致。
| 型 | 条件 |
|---|---|
| 無玄の型 | 剋数が全部0 |
| 五宮同均の型 | 剋数が全部同じ(0以外) |
| 了殿の型 | 中央が単独で最大 |
| 点欽の型 | 中央以外が単独で最大、かつ次点と2以上の差 |
| 順殿の型 | それ以外 |
運は、水(龍高・玉堂)と火(鳳閣・調舒)の星がどの方位にあるかで決まる。176件で全一致。
| 水火の位置 | 運 |
|---|---|
| 中央(中心)にある | 北天運 |
| 東西(社会・配偶者)だけ | 東天運 |
| 南北(目上・目下)だけ | 西天運 |
| 東西と南北の両方 | 北天運 |
| どこにもない | 南天運 |
水は思考、火は表現を表すので、それが図のどこに寄っているかを見る技法だと解釈できる。
正直に残しておく。推測で実装はしていない。
kantei-app が「宇宙盤」として出している円形図と同じもの。画像を取りに行かず SVG で自前描画している。
円周に並ぶのは十二支ではなく、六十干支の通し番号(1〜60)だった。
1番が真上で時計回り、n番の角度は (n−1)×6 度。15番ずつで四つの領域に分かれる。
| 番号 | 位置 | 領域 | 読み |
|---|---|---|---|
| 1〜15 | 右上 | 第一領域 | 守備安定(知性的だが感情的でもある) |
| 16〜30 | 右下 | 第二領域 | 伝達創造(情的で庶民性がある) |
| 31〜45 | 左下 | 第三領域 | 攻撃開拓(庶民性と合理性を併せ持つ) |
| 46〜60 | 左上 | 第四領域 | 習得知恵(合理的、理屈屋、知性豊か) |
結ぶ3点は年柱・月柱・日柱の干支番号(支ではなく干支そのもの)。
最初は「十二支を円周に置いて3支を結ぶ図」だと判断していたが、間違いだった。
画像だけを見て目盛りの数を数え違えたのが原因。1984-10-10 で三柱は 甲子(1)・甲戌(11)・丁丑(14) で
本家はすべて右上に寄った細い三角形を描くが、十二支で描くと月支の戌が左上に飛んで形が逆になる。
これで発覚した。境界の検算:16番がちょうど真右、31番が真下、46番がちょうど真左に来る。
sanmei-stock には「六神法」という項目が存在しない(ページ全体を検索して0件。
数理法・八門法・位相法・六親法はある)。六親法の別名として使われている呼び方で、
親族との関係を見る同じ技法を指す。六親法として実装済み。
長らく75%止まりだったが、観測から逆算しようとしていたのが間違いだった。
サイト自身の解説ページに手順がそのまま書いてあり、それを読んで実装したら全件一致した。
経緯を残しておく。
| 試したこと | 結果 |
|---|---|
| 命式の干プールから順に取り、使った干は消費する | 75% |
| 消費ルールの候補54通りを総当たり | 最良76.6% |
| 解説ページを読んで手順どおりに実装 | 100% |
私のモデルが間違っていた点は3つ。消費しない(同じ干を何人が使ってもよい)、
日干のマスは自分なので家族に数えない、父と子供は理想の干ではなく実際に見つかった干から辿る。
どれも観測データを睨んでいるだけでは出てこない発想だった。
教訓:出力を集めて逆算する前に、まず提供元の解説を読む。
cd research
python3 collect.py # サンプルをまとめて取得(3秒間隔)
python3 sainou_probe.py # 才能の剋数・型・運を抽出して統計
python3 rokushin.py 19841010 20260101 # 六親法を日付指定で確認(末尾に _2 を付けると女性)
python3 rokushin_validate.py # 六親法の追試ぶんを取り直す
node ../tests/verify_rokushin.cjs # 六親法を観測ぜんぶと突き合わせる
node ../research/rokushin_model.cjs # 六親法の規則を総当たりで探し直す
相手のサーバーに負荷をかけないこと。必要な件数だけ、間隔を空けて取得する。
tests/README.md(原文)このエンジンの計算が正しいかどうかを、実在の算命学アプリ kantei-app.com の出力と
突き合わせて確認するためのスクリプト。
取得したHTMLとパース結果はリポジトリに含めていない(他サイトのデータなので)。
実行すると _cache/ に取得結果がたまり、2回目以降はキャッシュを使う。
算命学は蔵干の区分・人体図の配置・立運の丸め方に流派差があり、
文献やWebの解説だけでは正解を1つに決められなかった。
そこで実際に動いているアプリの出力を観測し、そこから規則を逆算してエンジンに反映した。
判明して実装に取り込んだのは次の点。
src/engine.js の ZOKAN_KANTEI にコメント付きで記載)# 1) 照合したい日付を取得する(1リクエストごとに1.2秒の間隔を空けている)
python3 kantei_probe.py 19841010 20000515 20291231
# 2) パース結果を1つのJSONにまとめる
python3 dump_all.py
# 3) エンジンの出力と全項目を突き合わせる
node verify_kantei.cjs
verify_kantei.cjs が照合するのは、年柱・月柱・日柱の干支と通し番号、蔵干3段、採用蔵干、
人体図5マス、従星3つ、天中殺2種、大運12本。
165ケースで全項目一致(不一致0件)。
相手のサーバーに負荷をかけないよう、リクエストは必ず間隔を空け、必要な件数だけにすること。
| ファイル | サイズ | 中身 |
|---|---|---|
research/observed_sainou.json |
136689 bytes | 才能の観測 176件 |
research/observed_rokushin.json |
103264 bytes | 六親法の観測 221件 |
research/observed_rokushin_val.json |
38900 bytes | 六親法の追試 72件 |
research/obs_zokan.json |
1716 bytes | 蔵干の区分の観測 |
research/obs_zokan2.json |
2631 bytes | 蔵干の区分の観測(2回目) |
research/obs_gaps.json |
1198 bytes | 蔵干の区分の境界 |
tests/kantei_all.json |
203782 bytes | kantei-app の165ケースの全項目 |