A package of iching stalk divination in Traditional Chinese Language. Python周易筮法,起卦不求人。

ichingshifa的Python项目详细描述


周易筮法卜卦 Iching Shifa (stalk divination)

alt text

"筮"是傳統的周易起卦方式。古人以50根蓍草作為占卜工具,名為策,故此法亦稱"籌策"占卜。《周易系辭上傳》辭曰:"大衍之數五十,其用四十有九。分而為二以像兩,掛一以像三,揲之以四以像四時,歸奇於扐以像閏,五歲再閏,故再扐而後掛。天一地二,天三地四,天五地六,天七地八,天九地十。天數五,地數五,五位相得而各有合。天數二十有五,地數三十,凡天地之數五十有五。此所以成變化而行鬼神也。"整個起卦過程是要求得十八個隨機數目,當中包括"六次"(即六根爻)的"三變"。

1. 大衍之數、太一、分二、掛一、揲四、歸奇

#一變的過程n=2stalks_first=50-1#把太一拿走dividers=sorted(random.sample(range(24,stalks_first),n-1))#分二division=[a-bfora,binzip(dividers+[stalks_first+10],[10]+dividers)]guayi=1#掛一right=division[0]-guayileft_extract=division[1]%4#揲四ifleft_extract==0:left_extract=4right_extract=right%4ifright_extract==0:right_extract=4#歸奇bian=left_extract+right_extract+guayi#一變,其餘二變倣效此法,如果做for loop 這裡的掛一可以拿走,不用加上。(49 - 三變)/4 = 爻數值 6,7,8或9

上述為一變,一變重複三次,即49策 - 一變 - 二變 - 三變,減去的總數再除以四,得出的就是爻值。每一根爻的數值可以是 6(老陰)、7(少陽)、8(少陰)或者 9(老陽) 在分二的時候,原來設定隨機數範圍為1至49,但本人使用實物求筮時,分二左右手各得的策數目應該不會相差太遠,所以稍微調節了隨機數的範圍。以四十九除以二,即二十四作為下限。六爻數值出現,從下而上,形成"本卦"。如本卦裡包含了老陰或老陽,即6或9的數值,是為"變卦"。變卦裡的6或9數值需要變換,老陰變少陽,老陽變少陰,亦即9變8,6變7,當轉換後,六爻數值產生變化,變成另一個卦,稱為"之卦"。起卦者主要依據本卦、變爻和之卦判斷占卜結果。

2. 處理變(動)爻的方法︰

  1. 凡卦六爻皆不變,則占本卦彖辭,而以內卦為貞,外卦為悔,彖辭為卦下之辭。

  2. 一爻變,則以本卦變爻辭

  3. 二爻變,則以本卦二變爻辭占,仍以上爻為主

  4. 三爻變,則占本卦及之卦之彖辭,即以本卦為貞,之卦為悔,前十卦 (初爻出現變爻) 主貞,後十卦 (非初爻出現變爻) 主悔

  5. 四爻變,則以之卦二不變爻占,仍以下爻為主經,亦無文,今以例推之當如此。

  6. 五爻變,則以之卦不變爻占。

  7. 六爻變,則乾、坤占二用,餘卦占之卦彖辭。

參考自【宋】‧朱熹、蔡元定《易學啟蒙》卷下 考變占︰

50000次起卦不同動爻數量出現概率︰ alt text

3. 安裝套件:

pip install --upgrade ichingshifa

4. 快速起卦:

from ichingshifa import ichingshifa #導入周易筮法套件庫
ichingshifa.mget_bookgua_details() #手動起卦,從底而上,適合以蓍草起卦者使用,譬如 "初爻7, 二爻8, 三爻9, 四爻7, 五爻8, 上爻9",即 ichingshifa.mget_bookgua_details('789789')
ichingshifa.bookgua_details() #顯示隨機起卦結果
ichingshifa.datetime_bookgua('年', '月', '日', '時') #指定年月日時起卦
ichingshifa.current_bookgua() #按現在的年月日時起卦,此法只有一動爻

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Maven中的java,为什么要运行“mvn clean”?   java会降低图像质量。OutOfMemory异常Android   在Java8中将函数传递到流的过滤方法   jboss6。x java。lang.NoClassDefFoundError,当我将<listenerclass>包含到web时。xml java   java读取图像像素时,像素Alpha始终为255   java在迭代后跳过一行   java如何创建我自己的单链表   意图上的java空指针异常。getStringExtra.:安卓   具有连接实体的java Hibernate onetoone映射   java需要帮助在自制的仓鼠模拟器上实现启动/恢复/暂停/停止线程操作   如何测试非主方法?[Java,IntelliJ]   java jdbc自动提交(false)不起作用   java在JADE中的同一容器中创建多个代理   java OkHttp获取失败的响应正文   java Webdriver flash按钮