心誠則靈
假爾泰筮有常,假爾泰筮有常,今以某事,未知可否?爰質疑于神于靈,吉凶得失,悔吝憂虞,惟爾有神,尚明告之。
把下面的程式碼複製在如下網址網站中貼上按下RUN,就可以自動跑出結果,跑6次就會出現六爻,就會有卦象,可以預知未來
https://www.programiz.com/python-programming/online-compiler/
遇老陽爻及老陰爻要變爻,例如:
第6次(第6爻):少陽( 一)
第5次(第5爻):少陰( - -)
第4次(第4爻):少陰( - -)
第3次(第3爻):老陽( 一)變爻( - -)
第2次(第2爻):少陽( 一)
第1次(第1爻):少陰( - -)
原卦為山風蠱卦,第3次老陽變爻為少陰,成為山水蒙卦
#朱熹的「祈禱文」,誠心祈禱心誠則靈
#假爾泰筮有常,假爾泰筮有常,今以某事,未知可否?爰質疑于神于靈,吉凶得失,悔吝憂虞,惟爾有神,尚明告之。
import random
def split_and_modulo_multiple_times(i):
"""
隨機將 i 分成兩個數,並進行以下操作:
1. 將其中一個數減 1,兩個數分別除以 4 求餘數(若餘數為 0,則輸出 4)。
2. 將 i 減去 1,再減去上面得到的兩個餘數。
3. 將步驟 2 的結果隨機分成兩個數。
4. 對新的兩個數重複步驟 1 的操作。
Returns:
tuple: 包含所有運算結果的 tuple。
"""
# 第一次分拆
num1 = random.randint(1, i)
num2 = i - num1
# 第一次求餘數 (若餘數為 0,則輸出 4)
modulo1 = (num1 - 1) % 4
modulo1 = 4 if modulo1 == 0 else modulo1
modulo2 = num2 % 4
modulo2 = 4 if modulo2 == 0 else modulo2
# 計算剩餘數字
remaining_num = i - 1 - modulo1 - modulo2
return num1, num2, modulo1, modulo2, remaining_num
def convert_number_to_letter(number):
"""將特定數字轉換為對應字母的函式。
Args:
number: 要轉換的數字。
Returns:
對應的字母,若不在轉換範圍內則回傳原數字。
"""
conversion_table = {
36: '老陽',
32: '少陰',
28: '少陽',
24: '老陰',
}
return conversion_table.get(number, number)
if __name__ == "__main__":
#第1次分拆49
result = split_and_modulo_multiple_times(49)
print("第1次分拆:")
print(f"49 分成 {result[0]} 和 {result[1]}")
print(f"{result[0]} - 1 除以 4 的餘數為 {result[2]}")
print(f"{result[1]} 除以 4 的餘數為 {result[3]}")
print(f"剩下{result[4]}")
#第2次分拆
result2 = split_and_modulo_multiple_times(result[4])
print("第2次分拆:")
print(f"{result[4]} 分成 {result2[0]} 和 {result2[1]}")
print(f"{result2[0]} - 1 除以 4 的餘數為 {result2[2]}")
print(f"{result2[1]} 除以 4 的餘數為 {result2[3]}")
print(f"剩下{result2[4]}")
#第3次分拆
result3 = split_and_modulo_multiple_times(result2[4])
print("第3次分拆:")
print(f"{result2[4]} 分成 {result3[0]} 和 {result3[1]}")
print(f"{result3[0]} - 1 除以 4 的餘數為 {result3[2]}")
print(f"{result3[1]} 除以 4 的餘數為 {result3[3]}")
print(f"剩下{result3[4]}")
print(f"卦為{convert_number_to_letter(result3[4])}")