梅花易数的数学研究与编程

梅花易数传自邵康节,是利用易经八卦预测术中一种,和计算机颇有渊源。个人感觉易经是布尔数学的一种,运行布尔数学可以很轻松的推导出易经的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);
	}

梅花易还有起卦,时间起,汉字起,摇卦等。也可以很轻松转为数学总是起之。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值