当前位置:文档之家› 《易学与数学和计算机科学》-图解乾坤生六子

《易学与数学和计算机科学》-图解乾坤生六子

图解乾坤生六子
(含:计算机验证程序)
中国古文明是一个早产的文明,在纸张还没有发明的年代,就创造出了完整的文字、历法、数学等等。

在秦汉以前,记载主要以竹简、木牍为主,虽然有少量的锦帛、兽皮等,但是存世的及其稀少。

以考古发掘出的竹简和木牍来看,这种载体根本不适合记录图形、公式等!以至于很多与图形、数学公式等相关的知识,只能以描述性文字记载下来。

这样就造成了很多具有争议的问题,并且其精确性令人颇为担心。

以易经来讲,其中描述乾坤变化的仅仅八个字“乾道成男,坤道成女”,一般人很难理解这究竟是怎么个“成”法。

所幸的是在清代医学家郑寿全所著的《医理真传》中,讲解了其对“乾道成男,坤道成女”-乾坤生六子的理解,使得我们可以更准确的理解这个变化道理。

但这仍然是描述性的,没有图形给出,今笔者就此将其中的变化规律以图形的形式给出,并且分析出其数学规律。

如上图,将其中的阴阳爻以0和1代替,就可以发现,其描述的规律实际上就是一种数学运算法则:逻辑与运算以及逻辑或运算。

逻辑与运算的运算法则是:0&1=0,0&0=0,1&0=0,1&1=1;(& 与运算符)
逻辑或运算的运算法则是:0|1=1,0|0=0,1|0=1,1|1=1;(| 与运算符)
解:设阳爻为0,阴爻为1,初爻为数据的第一位,二爻为第二位,三爻为第三位,转换成二进制数据(如震:110,艮011)。

再设乾为Q,坤为K,运算结果为R.则:
乾道运算为,
Q|001=R1
R1<<N=R2 ,(N∈0,1,2)
(~R2)&K=R
其中,R1,R2,为中间运算结果,<<是逻辑移位运算符,~取反逻辑运算符,N是移位运算的位数。

坤道运算为,
K&001=R1
R1<<N=R2 ,(N∈0,1,2)
R2|Q=R
其中,R1,R2,为中间运算结果,<<是逻辑移位运算符,~取反逻辑运算符,N是移位运算的位数。

证明:①乾道:成中男,(乾为000,坎为101)
000|001=001
001<<1=010
(~010)&111=101
②坤道:成长女坤为111,巽为110)
111&001=001
001<<0=001
(~001)|000=110
同理,使用上面的公式,可以验证震(110)、艮(011)、离(010)、兑(001)的生成。

除此外可以使用计算机程序进行验证。

C语言程序:
//程序名:乾坤生六子的规律
//程序功能:输入数据000、111和爻位,输出运算结果Result
//入口参数:Q , K,N
//出口参数:Result
//作者:单磊磊
//时间:2015-9-8
#include "stdio.h"
void main()
{
unsigned int K,Q,N,i,R,R1,R2,f;
int a[3],y;
f=1;
while(1)
{
printf("_________________________________________________________________\n"); if(f==1)
{printf("乾道:请输入000和要得到的长幼顺序,长子为0,次子为1,少子为2.\n"); printf("坤道:请输入111和要得到的长幼顺序,长女为0,次女为1,少女为2.\n"); }
scanf("%d %d",&i,&N);
printf("____________\n");
printf("\n");
if(i==0)
{
Q=0x00;
K=0x07;
R1=Q|0x001;
R2=R1<<N ; //(N∈0,1,2)
R=(~R2)&K;
printf("result: ");
for(y=0;y<3;y++)
{R=R>>1;
a[y]=R&0x01;
printf("%x",a[y]);
}
printf("\n");
}
else if(i==111)
{
Q=0x00;
K=0x07;
R1=K&0x001;
R2=R1<<N+1 ; //(N∈0,1,2)
R=R2|Q;
printf("result: ");
for(y=0;y<3;y++)
{R=R>>1;
a[y]=R&0x01;
}
for(y=2;y>=0;y--)
{
printf("%x",a[y]);
}
printf("\n");
}
else
{printf("格式错误");} f=0;
}
}。

相关主题