梅花易數的數學研究與程式設計
梅花易數傳自邵康節,是利用易經八卦預測術中一種,和計算機頗有淵源。個人感覺易經是布林數學的一種,執行布林數學可以很輕鬆的推匯出易經的64卦,而易經預測應該是概率統計數學。64卦分為8宮,以0,1為基礎,每宮八個卦,以八進位制為進位,一共64卦。
"陰陽(太極)☯"的64卦的單橫記為0,雙橫記為1,乾卦三個單橫☰就表示0,坤卦三個雙橫表示3個1為7,兌卦一個雙橫兩個單橫,表示1,以此類推0到7分別為乾兌離震巽坎艮坤,如下{"乾 ☰","兌 ☱" , "離 ☲","震 ☳","巽 ☴","坎 ☵","艮 ☶","坤 ☷"},每一卦都可以使用三個位元表示。擴充套件到64卦,使用六個位元,乾為六個單橫,6個0還表示0,坤為六個雙橫,六個1,八進位制為77,7X8+7表示63,以此類推,64卦就表示為63個數字,用單雙橫分別代替0和1,就是六十四卦像。對應卦名為:
String []GuaMing = {"乾為天", "澤天夬","火天大有","雷天大壯","風天小畜","水天需","山天大畜","地天泰",
"天澤履", "兌為澤", "火澤睽", "雷澤歸妹","風澤中孚","水澤節", "山澤損", "地澤臨",
"天火同人","澤火革", "離為火", "雷火豐", "風火家人","水火既濟","山火賁", "地火明夷",
"天雷無妄","澤雷隨", "火雷噬嗑","震為雷", "風雷益", "水雷屯", "山雷頤", "地雷復",
"天風姤", "澤風大過","火風鼎", "雷風恆", "巽為風", "水風井", "山風蠱", "地風升",
"天水訟", "澤水困", "火水未濟","雷水解", "風水渙", "坎為水", "山水蒙", "地水師",
"天山遁", "澤山鹹", "火山旅", "雷山小過","風山漸", "水山蹇", "艮為山", "地山謙",
"天地否", "澤地萃", "火地晉", "雷地豫", "風地觀", "水地比", "山地剝", "坤為地",
};
六十四卦都是由兩個單卦組成,單卦如下:
String [] BaGua= {"天","澤","火","雷","風","水","山","地"};
String [] BenGuaMing= {"乾","兌","離","震","巽","坎","艮","坤"};
一個迴圈按順序輸出64卦,使用八進位制取取三個BIT位的資訊,按值繪出圖形;
for (int i = 0; i < 64; i++) { String s1 = BaGua[i&0x07]; String s2 = BaGua[(i>>3)&0x07]; String s = s1 + s2; System.out.println(i+GuaMing[i]); System.out.println(s); System.out.println(xiang[i&0x07]); System.out.println(xiang[(i>>3)&0x07]); }
0乾為天
天天
乾 ☰
乾 ☰
1澤天夬
澤天
兌 ☱
乾 ☰
2火天大有
火天
離 ☲
乾 ☰
3雷天大壯
雷天
震 ☳
乾 ☰
4風天小畜
風天
巽 ☴
乾 ☰
5水天需
水天
坎 ☵
乾 ☰
6山天大畜
山天
艮 ☶
乾 ☰
7地天泰
地天
坤 ☷
乾 ☰
8天澤履
天澤
乾 ☰
兌 ☱
9兌為澤
澤澤
兌 ☱
兌 ☱
10火澤睽
火澤
離 ☲
兌 ☱
11雷澤歸妹
雷澤
震 ☳
兌 ☱
12風澤中孚
風澤
巽 ☴
兌 ☱
13水澤節
水澤
坎 ☵
兌 ☱
14山澤損
山澤
艮 ☶
兌 ☱
15地澤臨
地澤
坤 ☷
兌 ☱
16天火同人
天火
乾 ☰
離 ☲
17澤火革
澤火
兌 ☱
離 ☲
18離為火
火火
離 ☲
離 ☲
19雷火豐
雷火
震 ☳
離 ☲
20風火家人
風火
巽 ☴
離 ☲
21水火既濟
水火
坎 ☵
離 ☲
22山火賁
山火
艮 ☶
離 ☲
23地火明夷
地火
坤 ☷
離 ☲
24天雷無妄
天雷
乾 ☰
震 ☳
25澤雷隨
澤雷
兌 ☱
震 ☳
26火雷噬嗑
火雷
離 ☲
震 ☳
27震為雷
雷雷
震 ☳
震 ☳
28風雷益
風雷
巽 ☴
震 ☳
29水雷屯
水雷
坎 ☵
震 ☳
30山雷頤
山雷
艮 ☶
震 ☳
31地雷復
地雷
坤 ☷
震 ☳
32天風姤
天風
乾 ☰
巽 ☴
33澤風大過
澤風
兌 ☱
巽 ☴
34火風鼎
火風
離 ☲
巽 ☴
35雷風恆
雷風
震 ☳
巽 ☴
36巽為風
風風
巽 ☴
巽 ☴
37水風井
水風
坎 ☵
巽 ☴
38山風蠱
山風
艮 ☶
巽 ☴
39地風升
地風
坤 ☷
巽 ☴
40天水訟
天水
乾 ☰
坎 ☵
41澤水困
澤水
兌 ☱
坎 ☵
42火水未濟
火水
離 ☲
坎 ☵
43雷水解
雷水
震 ☳
坎 ☵
44風水渙
風水
巽 ☴
坎 ☵
45坎為水
水水
坎 ☵
坎 ☵
46山水蒙
山水
艮 ☶
坎 ☵
47地水師
地水
坤 ☷
坎 ☵
48天山遁
天山
乾 ☰
艮 ☶
49澤山鹹
澤山
兌 ☱
艮 ☶
50火山旅
火山
離 ☲
艮 ☶
51雷山小過
雷山
震 ☳
艮 ☶
52風山漸
風山
巽 ☴
艮 ☶
53水山蹇
水山
坎 ☵
艮 ☶
54艮為山
山山
艮 ☶
艮 ☶
55地山謙
地山
坤 ☷
艮 ☶
56天地否
天地
乾 ☰
坤 ☷
57澤地萃
澤地
兌 ☱
坤 ☷
58火地晉
火地
離 ☲
坤 ☷
59雷地豫
雷地
震 ☳
坤 ☷
60風地觀
風地
巽 ☴
坤 ☷
61水地比
水地
坎 ☵
坤 ☷
62山地剝
山地
艮 ☶
坤 ☷
63坤為地
地地
坤 ☷
坤 ☷
梅花易常用的互卦也能簡單使用位運算求出,根據2,3,4,5多組成新的卦為互卦,對應2,3,4,5位元位
public static int getHuGua(int g) { int a = (g>>1)&0x7; int b = (g>>2)&0x7; return ((b<<3)|a); }
梅花易常用的變卦,某一多取反,單橫變雙橫,雙橫變單橫,使用異或運算,由於變爻是從下卦最下邊一多開始,其實對應的是卦的最高位,所以使用6減
public static int getBianGua(int g, int dong) { dong =0x1<<(6-dong); return (g^dong); }
梅花易還有起卦,時間起,漢字起,搖卦等。也可以很輕鬆轉為數學總是起之。