A package of iching stalk divination (currently only written in Traditional Chinese Language). Python周易筮法,起卦不求人。
Project description
周易筮法卜卦 Iching Shifa (stalk divination)
"筮"是傳統的周易起卦方式。古人以50根蓍草作為占卜工具,名為策,故此法亦稱"籌策"占卜。《周易系辭上傳》辭曰:"大衍之數五十,其用四十有九。分而為二以像兩,掛一以像三, 揲之以四以像四時,歸奇於扐以像閏,五歲再閏,故再扐而後掛。 天一地二,天三地四,天五地六,天七地八,天九地十。天數五,地數五,五位相得而各有合。天數二十有五,地數三十,凡天地之數五十有五。此所以成變化而行鬼神也。"
整個起卦過程是要求得十八次的隨機數目,當中包括"六次"(即六根爻)的"三變"。
1. 大衍之數、太一、分二、掛一、揲四、歸奇︰
#一變的過程
n=2
stalks_first = 50-1 #把太一拿走
dividers = sorted(random.sample(range(24, stalks_first), n - 1)) #分二
division = [a - b for a, b in zip(dividers + [stalks_first+10], [10] + dividers)]
guayi = 1 #掛一
right = division[0] - guayi
left_extract = division[1] % 4 #揲四
if left_extract == 0:
left_extract = 4
right_extract = right % 4
if right_extract == 0:
right_extract = 4 #歸奇
bian = left_extract + right_extract + guayi #一變,其餘二變倣效此法,如果做for loop 這裡的掛一可以拿走,不用加上。
上述為一變,一變重複三次,49策 - 一變 - 二變 - 三變 = 爻。(建議三變不要以for loop做;for loop做出來的六爻動概率稍高。)分二的時候,原來設定隨機數範圍為1至49,但本人使用實物求筮時,分二左右手各得的策數目應該不會相差太遠,所以稍微調節了隨機數的範圍。以四十九除以二,即二十四作為下限。
而每一根爻的數值可以是6(老陰)、7(少陽)、8(少陰)或者 9(老陽)。
上述求爻數值重複六次,第一爻為初爻,從底而上,形成本卦,然後依據卦的變爻多寡求出占卜結果。
2. 處理變爻的方法︰
-
凡卦六爻皆不變則占本卦彖辭而以內卦為貞外卦為悔彖辭為卦下之辭
-
一爻變則以本卦變爻辭
-
二爻變則以本卦二變爻辭占仍以上爻為主
-
三爻變則占本卦及之卦之彖辭即以本卦為貞之卦為悔前十卦主貞後十卦主悔
-
四爻變則以之卦二不變爻占仍以下爻為主經 亦無文今以例推之當如此
-
五爻變則以之卦不變爻占
-
六爻變則乾坤占二用餘卦占之卦彖辭
50000次起卦不同動爻數量出現概率︰
二動爻:30.52%
一動爻:17.10%
三動爻:13.61%
四動爻:3.42%
五動爻:0.43%
六動爻:0.03%
參考自【宋】‧朱熹、蔡元定《易學啟蒙》卷下 考變占︰
3. 安裝套件:
pip install --upgrade ichingshifa
4. 快速起卦:
from ichingshifa import ichingshifa
ichingshifa.bookgua_details() #顯示隨機起卦結果
ichingshifa.current_bookgua() #按現在的年月日時起卦,此法只有一動爻
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ichingshifa-2.8.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44695077edd58f99962d44173ae73f3faf0c2f7bc2427b2a1f16737c1af36143 |
|
MD5 | d4a754f752e3529ee8f1368eba806d1a |
|
BLAKE2b-256 | 076baea2b580e2402d2d594b382adfa61215e39a39cbbd2bac2555f766a72ba7 |