Abstract
本文描述受檢 I-Ching Vir 函式庫的錢幣與蓍草起卦:每次抽取使用新的作業系統熵、以問題 SHA-256 形成個人化遮罩、拒絕取樣,以及每爻三變。依實作分割區間窮舉有限狀態,推導精確分布;梅花及手動輸入另行區分。附錄明確區分獨立數學驗證與本次未能完成編譯的原生測試。
1 範圍 (Scope)與來源
範圍為 2026 年 10 月 23 日雜湊清單中的 cast/prng.vri、cast/entropy、cast/coins、cast/yarrow [1]。QP-SYS-002將起卦放在整體 I-Ching Engine 中。它是共用能力,不是 NLP 子系統,也不專屬於 Liuyao。
本文陳述軟體模型。爻值機率不能證明預測有效性;問題雜湊不能證明問題與卦象之間有因果關係。不公布使用者私人占問歷史。
2 區分問題文字的兩條路徑
2.1 熵的個人化
對非空文字,castQuestionMask 以 SHA-256 雜湊 UTF-8 位元組,將摘要前八個位元組視為 big-endian 整數,再清除符號位元。空文字約定為遮罩 0。受檢函式沒有 Unicode 正規化步驟,不同位元組表示可能得到不同遮罩。
CastRng.state 儲存 63-bit 遮罩,不是隨抽取演進的 PRNG 狀態。每次 castRngNext 都呼叫 OS provider;crypto_entropy_u63_checked 請求 bytes(8)、組合整數並保留非負 63 位元。新的 OS 輸出與遮罩 XOR:
固定遮罩下,XOR 是雙射;若 OS 輸入均勻,輸出仍均勻。遮罩不增加熵,不是簽章、抗碰撞識別碼或認證雜湊。截短至 63 位元不保留完整 SHA-256 摘要的抗碰撞性質。
2.2 語言處理
NLP 另行建立 QueryContext,供評分及 NLG 使用,詳見 QP-SYS-001。它不提供錢幣或蓍草的隨機抽取值。重複同一問題不會重播同一卦,因為每次仍取得新的 OS 輸出。Xorshift、DJB2 legacy helper 仍留供相容與測試,不得據此描述現行 CastRng 路徑 [1]。
3 避免模數偏差的區間取樣
閉區間 [a,b] 的長度為 ,並令 。程式設定:
每次抽新 u;若 則丟棄並讀取新熵,否則回傳 。[0,L) 中每個餘數類有相同元素數,因此均勻 provider 產生均勻區間輸出。
使用 U 而非 ,避免超出帶符號整數上限。部分區間會比最少拒絕方案多丟棄數值,影響效率而非均勻性。span 不大於 1 時立即回傳 a;此行為不是對倒置區間或整數溢位的一般驗證。合法起卦 caller 使用已知的小區間。
provider 失敗時拋出錯誤 601。作者工作樹控制器在進入結果處理與儲存流程前捕捉起卦錯誤並回傳 HTTP 500。不以時間或問題作為備援 seed。隨機值 0 合法,不表示失敗。
4 三錢法
cast_one_coin_rng 抽取均勻位元並映射為 2 或 3;cast_coin_line_rng 相加三次抽取。在獨立均勻假設下:
六爻需要 18 次被接受的抽取;拒絕重抽可能增加熵讀取次數。6 為動陰、7 為靜陽、8 為靜陰、9 為動陽;由下往上生成。動畫展示已計算的結果,不提供額外熵。
5 蓍草:每爻三變
5.1 狀態轉移
每爻由 49 根開始。左堆為 l,右堆原為 N-l,從右取一根後參與計數的右堆為 N-l-1。對正整數 x 定義 :
yarrow_one_bian_full_rng 記錄左右堆、餘數、取除數及剩餘數。連續三變得到 ;六爻共十八變。第一變取除 5 或 9,後兩變取除 4 或 8,最後剩 24、28、32 或 36。
5.2 實作的分割區間
受檢主要路徑並非在 1..N-2 的全部整數中抽取,而使用下列閉區間;各區間長度均為 4 的倍數:
- 第一變 N=49:12..35,共 24 個分割點。
- 第二變 N=44:12..31;N=40:10..29,均為 20 點。
- 第三變 N=40:10..29;N=36:10..25;N=32:8..23。
因此模 4 的餘數分布均衡。首變取除 5 的機率為 3/4、取除 9 為 1/4;後兩變取除 4 或 8 各為 1/2,故:
這是在獨立均勻抽取下,實作區間模型的精確分布,不能用來認定真實手分蓍草具有相同分布。舊筆記描述全區間 1..N-2 模型,近似比例為 5.17%、28.87%、44.84%、21.12%;那是不同模型,不是此次受檢區間的結果。
5.3 與三錢法的差異
蓍草的動陰 6 為 1/16、動陽 9 為 3/16;三錢法兩者各為 1/8。兩種模型每爻成為動爻的總機率均為 1/4,但動爻種類與靜爻結果分布不同。不能因輸出都在 {6,7,8,9} 就互相替代。
6 梅花、手動輸入與卦變
時間梅花從 calendar SDK 取得年支、農曆月日及依曆法約定的時支,以模 8、模 6 選取卦與動爻,餘數 0 改為 8 或 6。它依曆法輸入確定,不是 CSPRNG 抽取。函式庫有數字梅花 helper,不代表所有變體都有 HTTP 介面。
手動模式由控制器要求六個 6..9 整數,代表 caller 提供的爻值,不認證外部隨機來源。六爻完成後,核心先建立本卦、變卦及互卦,之後才由流派、應期和 NLP/NLG 解釋,詳見 QP-SYS-002。
7 向量與重現
附錄提供 ASCII、UTF-8、56/64-byte padding 邊界的 SHA-256 遮罩、餘數案例與蓍草範例。驗證器使用有理數窮舉完整有限分割樹,確認 (1,5,7,3)/16;列舉八種錢幣組合確認 (1,3,3,1)/8 [2]。XOR 置換與拒絕取樣另在縮小的 8-bit 範圍驗證;一般證明見第 2–3 節。
向量只含公開合成文字。程式不呼叫 production 起卦 API、不需要私人語料,也不建立使用者歷史。數學檢查不直接測試 OS CSPRNG 品質。
8 驗證限制
test_cast_csprng.vri 有計數、失敗及拒絕 provider,但此次使用 virc 2026.2.20 編譯未通過語意分析。因此僅將 Python 驗證器與原始碼調查列為成功證據。作者工作樹 HTTP 故障注入測試未在本次出版重新執行。
來源雜湊不證明 production binary 可重現建置。安全熵依賴 OS 與 runtime;分布檢查不能證明密碼安全性。爻值機率及應期/評分 confidence 標籤不是占驗成功機率。
9 結論 (Conclusion)
錢幣與蓍草每次抽取使用新的熵並透過拒絕取樣映射區間。問題提供個人化遮罩,不是 Xorshift seed。蓍草以平衡區間執行三變,具有自己的分布;梅花與手動爻值為不同方法。完整文件須同時公開演算法、假設、向量與驗證邊界。
Bibliography
參考文獻(ISO 690 規範)
- [1] Quizzman Research & Engineering Team. I-Ching Vir inspected source manifest, 23 October 2026. 2026. [URL] (Author-run evidence; AI-assisted writing and translations; not independent certification.)
- [2] Quizzman Research & Engineering Team. Independent mathematical model verification and native test limitation. 2026. [URL] (Author-run evidence; AI-assisted writing and translations; not independent certification.)