精华内容
下载资源
问答
  • 计算生辰八字五行属性的算法

    万次阅读 热门讨论 2013-01-26 14:02:13
    我调研了几种起名字的思路,最终确定按照五行阴阳平衡的道理来确定生辰八字的五行属性,然后选取恰当的字。   说明:本文描述的算法是根据Internet上的资料整理而得到,并非我原创,但个别地方我做过修改。其中...

    计算生辰八字五行属性的算法

    潘爱民

    2013/1/26

     

    缘起:几年前,小儿出生的几天之内,我需要为他起名字。人生难得接一两回这样的任务,更是格外珍惜。我调研了几种起名字的思路,最终确定按照五行阴阳平衡的道理来确定生辰八字的五行属性,然后选取恰当的字。

     

    说明:本文描述的算法是根据Internet上的资料整理而得到,并非我原创,但个别地方我做过修改。其中经验值的出处已无法找到。

    算法的高度足够,我是坐在飞机上写下这一算法描述的,上万米高空俯瞰大地,感觉到一种静默的平衡J。在过去几年中,我用这一算法测算过十多个生辰八字,也碰到过一两个极端的情形,与现实中的表现比较吻合。因此,我相信这算法的结果有参考意义。但是,因使用该算法引起的任何意外事故,我概不负责,请谨慎使用。

     

    算法的过程如下所述:

    1.       根据出生年月日和时辰,确定八个字,即生辰八字。

    查万年历(比如www.nongli.net),确定前六个字。比如1968年8月8日,查到的结果是:

    戊申辛酉壬寅

    这六个字分别是年份的天干、地支,月份的天干、地支,和日子的天干、地支。

    接下来确定时辰的天干和地支,查下表:

     

    出生
    钟点

    时辰地支

    日干(即第5个字)

    甲 己

    乙 庚

    丙 辛

    丁 壬

    戊 癸

    23-1

    1-3

    3-5

    5-7

    7-9

    9-11

    11-13

    13-15

    15-17

    17-19

    19-21

    21-23

    甲子

    乙丑

    丙寅

    丁卯

    戊辰

    己巳

    庚午

    辛未

    壬申

    癸酉

    甲戌

    乙亥

    丙子

    丁丑

    戊寅

    己卯

    庚辰

    辛巳

    壬午

    癸未

    甲申

    乙酉

    丙戌

    丁亥

    戊子

    己丑

    庚寅

    辛卯

    壬辰

    癸巳

    甲午

    乙未

    丙申

    丁酉

    戊戌

    己亥

    庚子

    辛丑

    壬寅

    癸卯

    甲辰

    己巳

    丙午

    丁未

    戊申

    己酉

    庚戌

    辛亥

    壬子

    癸丑

    甲寅

    乙卯

    丙辰

    丁巳

    戊午

    己未

    庚申

    辛酉

    壬戌

    癸亥

     

    首先根据出生钟点找到相应的行数,再根据第5个字(日干),在右边5列中定位到相应的列,即可得到时辰的天干、地支,即第7、8两个字。譬如,1968年8月8日8点钟,在“7-9”这一行,“丁壬”这一列,得到时辰的干支为“甲辰”,所以,最终的八字为:

    戊申辛酉壬寅甲辰

     

    2.       计算八字的五行属性。

    首先,每个天干和地支都有对应的五行属性,如下面两表所示:

     

    天干属性:

    天干

    属性

    天干

    属性

    天干

    属性

     

     

     

     

     

    地支属性:

    地支

    属性

    地支

    属性

    地支

    属性

     

    接下来,计算五行“金木水火土”的强度值。对于五行中的每一行,其强度值包括两部分:

    l  天干强度:即八字中的4个天干,若其五行属性恰好是这一行,那么就有相应的贡献值,可查表如下:

     

    生月\天干

    子月

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    1.2

    1.2

    丑月

    1.06

    1.06

    1.0

    1.0

    1.1

    1.1

    1.14

    1.14

    1.1

    1.1

    寅月

    1.14

    1.14

    1.2

    1.2

    1.06

    1.06

    1.0

    1.0

    1.0

    1.0

    卯月

    1.2

    1.2

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    辰月

    1.1

    1.1

    1.06

    1.06

    1.1

    1.1

    1.1

    1.1

    1.04

    1.04

    巳月

    1.0

    1.0

    1.14

    1.14

    1.14

    1.14

    1.06

    1.06

    1.06

    1.06

    午月

    1.0

    1.0

    1.2

    1.2

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    未月

    1.04

    1.04

    1.1

    1.1

    1.16

    1.16

    1.1

    1.1

    1.0

    1.0

    申月

    1.06

    1.06

    1.0

    1.0

    1.0

    1.0

    1.14

    1.14

    1.2

    1.2

    酉月

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    1.2

    1.2

    1.2

    1.2

    戌月

    1.0

    1.0

    1.04

    1.04

    1.14

    1.14

    1.16

    1.16

    1.06

    1.06

    亥月

    1.2

    1.2

    1.0

    1.0

    1.0

    1.0

    1.0

    1.0

    1.14

    1.14

     

    l  地支强度:即八字中的4个地支,它们可能会藏了这一五行对应的天干,比如,“丑”藏了“癸、辛、己”,而癸、辛、己的五行属性分别是水、金、土。所以,地支“丑”对水、金、土都有强度贡献,而强度值的大小则取决于相应的月份。下面的表格涵盖了地支所藏的五行强度值。

     

     

    地支

    支藏

    月支(即第6个字)

    1.2

    1.1

    1.0

    1.0

    1.04

    1.06

    1.0

    1.0

    1.2

    1.2

    1.06

    1.14

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.2

    0.228

    0.2

    0.2

    0.23

    0.212

    0.2

    0.22

    0.228

    0.248

    0.232

    0.2

    0.5

    0.55

    0.53

    0.5

    0.55

    0.57

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.342

    0.318

    0.84

    0.742

    0.798

    0.84

    0.77

    0.7

    0.7

    0.728

    0.742

    0.7

    0.7

    0.84

    1.2

    1.06

    1.14

    1.2

    1.1

    1.0

    1.0

    1.04

    1.06

    1.0

    1.0

    1.2

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.24

    0.22

    0.2

    0.2

    0.208

    0.2

    0.2

    0.2

    0.24

    0.24

    0.212

    0.228

    0.5

    0.55

    0.53

    0.5

    0.55

    0.6

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.3

    0.342

    0.3

    0.3

    0.33

    0.3

    0.3

    0.33

    0.342

    0.36

    0.348

    0.3

    0.7

    0.7

    0.84

    0.84

    0.742

    0.84

    0.84

    0.798

    0.7

    0.7

    0.728

    0.742

    1.0

    1.0

    1.2

    1.2

    1.06

    1.14

    1.2

    1.1

    1.0

    1.0

    1.04

    1.06

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.24

    0.212

    0.228

    0.24

    0.22

    0.2

    0.2

    0.208

    0.212

    0.2

    0.2

    0.24

    0.5

    0.55

    0.53

    0.5

    0.55

    0.57

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.36

    0.318

    0.342

    0.7

    0.798

    0.7

    0.7

    0.77

    0.742

    0.7

    0.77

    0.798

    0.84

    0.812

    0.7

    1.0

    1.14

    1.0

    1.0

    1.1

    1.06

    1.0

    1.1

    1.14

    1.2

    1.16

    1.0

    0.3

    0.342

    0.3

    0.3

    0.33

    0.318

    0.3

    0.33

    0.342

    0.36

    0.348

    0.3

    0.2

    0.2

    0.24

    0.24

    0.212

    0.228

    0.24

    0.22

    0.2

    0.2

    0.208

    0.212

    0.5

    0.55

    0.53

    0.5

    0.55

    0.57

    0.6

    0.58

    0.5

    0.5

    0.57

    0.5

    0.36

    0.318

    0.342

    0.36

    0.33

    0.3

    0.3

    0.312

    0.318

    0.3

    0.3

    0.36

    0.84

    0.77

    0.7

    0.7

    0.728

    0.742

    0.7

    0.7

    0.84

    0.84

    0.724

    0.798

     

    回到前面的例子,八字“戊申辛酉壬寅甲辰”,查以上两表,可以得到五行强度为:

    金:0.84 (年支藏庚) + 1.2 (月干) + 1.2 (月支藏辛) = 3.24

    木:0.7 (日支藏甲) + 1.0 (时干) + 0.3 (时支藏乙) = 2.0

    水:0.36 (年支藏壬) + 1.2 (日干) + 0.24 (时支藏癸) = 1.8

    火:0.3 (日支藏丙) = 0.3

    土:1.0 (年干) + 0.5 (时支藏戊) = 1.5

     

    3.       给出起名指示。

    首先确定八字的命里属性。只需查日干的五行属性,即代表了该八字的五行属性。譬如“戊申辛酉壬寅甲辰”的日干“壬”的属性为水,故该八字对应的命里属性为水。

    再计算同类和异类的强度值。所谓同类是指,该八字的五行属性,以及生该五行属性的那个属性,譬如八字的五行属性为水,则水和金合起来称为同类,其他三个:木、火和土合起来称为异类。

    五行的相生关系为:金生水,水生木,木生火,火生土,土生金。

    得到了同类和异类的强度值以后,一个基本的判断是,若两者的数值比较接近,则说明该八字比较平衡,也暗示人生平顺;若两者数值相差较大(比如,大于1,甚至大于2),则说明五行不平衡,可以通过名字来弥补,或者将来找对象时候通过婚姻来补平。

    因此,得到同类和异类数值以后,如何确定“用神”或“喜神”,或者,如何在名字中补平,需要一点点人脑智能,目前尚未量化到算法或程序中。回到前面的例子:

    日干为壬,属水,故命属水

    “同类”数值:5.04

    “异类”数值:3.8

    “同类”比“异类”数值大,日主强,以火为用神。宜补火。

    最后,定下怎么补五行属性以后,剩下就是挑字了,这可以自由发挥了。康熙字典上每个字都有五行属性,可以在Internet上查到。

     

     

    附上代码:

    文件BaziEval.cpp

     

    //BaziEval.cpp : Defines the entry point for the console application.

    //

     

    #include"stdafx.h"

     

    #include<windows.h>

    #include<iostream>

    usingnamespace std;

     

    void Usage()

    {

                       cout << "Usage:\tBaziEval.exe -q <生辰八字中之前六字> -t hh" << endl;

                       cout <<"\tBaziEval.exe -e <生辰八字>" << endl;

                       return;

    }

     

    boolCheckBazi(_TCHAR *bazi);

    _TCHAR *ComputeTimeGan(_TCHAR *bazi, int hour);

    _TCHAR *EvalBazi(_TCHAR *bazi);

     

     

    int_tmain(int argc, _TCHAR* argv[])

    {

             _TCHAR *subCmd, *paraStr;

             if (argc != 5 && argc !=3) {

                       Usage();

                       return 0;

             }

            

             subCmd = argv[1];

             paraStr = argv[2];

             if (argc ==5) {

                       // Parsing the part of"-q <生辰八字中之前六字>"

                       if (!(wcslen(subCmd)==1&& subCmd[0] == 'q' || wcslen(subCmd)==2 && subCmd[0]=='-'&& subCmd[1]=='q')) {

                                Usage();

                                return 0;

                       }

     

                       if (wcslen(paraStr)!=6 ||!CheckBazi(paraStr)) {

                                cout <<"-q后面须跟上生辰日的干支,可以查询万年历,比如在线版本 http://www.nongli.net/" << endl;

                                Usage();

                                return 0;

                       }

                      

                       // Parsing the part of"-t hh:mm"

                       subCmd = argv[3];

                       paraStr = argv[4];

     

                       if (!(wcslen(subCmd)==1&& subCmd[0] == 't' || wcslen(subCmd)==2 && subCmd[0]=='-'&& subCmd[1]=='t')) {

                                Usage();

                                return 0;

                       }

                      

                       int hour = -1;

                       swscanf(paraStr,L"%d", &hour);

                       if (hour <0 || hour>23) {

                                cout <<"Error: 时辰参数不正确,应为0~23之间的一个整点数。" << endl;

                                Usage();

                                return 0;

                       }

     

                       _TCHAR * result =ComputeTimeGan(argv[2], hour);

                       if (result == 0) {

                                cout << "查询不成功!"<< endl;

                       } else {

                                char tmpBuf[128];

                           WideCharToMultiByte( CP_ACP, 0, result, -1,tmpBuf, 127, NULL, NULL );

     

                                cout << "查询八字的结果是:"<< tmpBuf << endl;

                                cout << "接下来您可以用-e命令测算此八字的五行平衡信息。" << endl;

                       }

                       return 0;

             }

     

             if (argc ==3) {

                       // Parsingthe part of "-q <生辰八字中之前六字>"

                       if (!(wcslen(subCmd)==1&& subCmd[0] == 'e' || wcslen(subCmd)==2 && subCmd[0]=='-'&& subCmd[1]=='e')) {

                                Usage();

                                return 0;

                       }

     

                       if (wcslen(paraStr)!=8 ||!CheckBazi(paraStr)) {

                                cout <<"-e后面须跟上生辰八字" << endl;

                                Usage();

                                return 0;

                       }

     

                       _TCHAR *result =EvalBazi(paraStr);

                      

                       if (result == 0) {

                                cout << "测算不成功,另请高明!"<< endl;

                       } else {

                                char tmpBuf[1024];

                           WideCharToMultiByte( CP_ACP, 0, result, -1,tmpBuf, 1024, NULL, NULL );

     

                                cout <<"\n此八字的五行平衡分析结果如下:\n\n" << tmpBuf << endl;

                       }

                       return 0;

             }

     

             Usage();

     

             return 0;

    }

     

    文件BaziAlgorithm.cpp

     

    #include "stdafx.h"

     

    #include <windows.h>

     

    const _TCHAR *TianGan = L"甲乙丙丁戊己庚辛壬癸";

    const _TCHAR *DiZhi = L"子丑寅卯辰巳午未申酉戌亥";

     

    bool CheckBazi(_TCHAR *bazi)

    {

             intbaziLen;

             inti,j;

     

             baziLen= wcslen(bazi);

             if(baziLen != 6 && baziLen != 8 ) return false;

     

             for(i = 0; i < baziLen;) {

                       _TCHARch = bazi[i];

                       for(j = 0; j < 10; j++)

                                if(ch == TianGan[j]) break;

                       if(j >= 10) return false;

                       i++;

     

                       ch= bazi[i];

                       for(j = 0; j < 12; j++)

                                if(ch == DiZhi[j]) break;

                       if(j >= 12) return false;

                       i++;

             }

            

             returntrue;

    }

     

    /*

    根据出生日子的天干,通过下表来查算时辰干支:

    时辰干支查算表

    时间时辰                             五行纪日干支

                           甲己     乙庚     丙辛     丁壬     戊癸

     

    23-01 子/水           甲子     丙子     戊子     庚子     壬子

    01-03 丑/土           乙丑     丁丑     己丑     辛丑     癸丑

    03-05 寅/木           丙寅     戊寅     庚寅     壬寅     甲寅

    05-07 卯/木           丁卯     己卯     辛卯     癸卯     乙卯

    07-09 辰/土           戊辰     庚辰     壬辰     甲辰     丙辰

    09-11 巳/火           己巳     辛巳     癸巳     己巳     丁巳

    11-13 午/火           庚午     壬午     甲午     丙午     戊午

    13-15 未/土           辛未     癸未     乙未     丁未     己未

    15-17 申/金           壬申     甲申     丙申     戊申     庚申

    17-19 酉/金           癸酉     乙酉     丁酉     己酉     辛酉

    19-21 戊/土           甲戌     丙戌     戊戌     庚戌     壬戌

    21-23 亥/水           乙亥     丁亥     己亥     辛亥     癸亥

     

    */

    const _TCHAR * cTimeGanZhi_Table[12][5] =

    {

             {L"甲子",L"丙子", L"戊子", L"庚子", L"壬子"},

             {L"乙丑",L"丁丑", L"己丑", L"辛丑", L"癸丑"},

             {L"丙寅",L"戊寅", L"庚寅", L"壬寅", L"甲寅"},

             {L"丁卯",L"己卯", L"辛卯", L"癸卯", L"乙卯"},

             {L"戊辰",L"庚辰", L"壬辰", L"甲辰", L"丙辰"},

             {L"己巳",L"辛巳", L"癸巳", L"己巳", L"丁巳"},

             {L"庚午", L"壬午",L"甲午", L"丙午", L"戊午"},

             {L"辛未",L"癸未", L"乙未", L"丁未", L"己未"},

             {L"壬申",L"甲申", L"丙申", L"戊申", L"庚申"},

             {L"癸酉",L"乙酉", L"丁酉", L"己酉", L"辛酉"},

             {L"甲戌",L"丙戌", L"戊戌", L"庚戌", L"壬戌"},

             {L"乙亥",L"丁亥", L"己亥", L"辛亥", L"癸亥"}

    };

     

    static _TCHAR sBuf[128];        // 用作八字结果缓冲区

     

    // 根据出生年月日的干支计算时辰干支

    // 输入参数:bazi,年月日的干支,即八字中的前六个字

    // 输入参数:hour,出生时间的小时数,-1~22

    // 输出结果:八字字符串,Unicode编码

    _TCHAR * ComputeTimeGan(_TCHAR *bazi, inthour)

    {

             _TCHARdayGan = bazi[4];

     

             intindexX, indexY;

            

             inti;

             for(i = 0; i < 10; i++)

                       if(dayGan == TianGan[i]) break;

             if(i >= 10) return 0;

             indexX= i;

             if(indexX >=5) indexX -= 5;

             indexY= (hour +1)/2;

     

             wcscpy(sBuf,bazi);

             wcscat(sBuf,cTimeGanZhi_Table[indexY][indexX]);

     

             returnsBuf;

    }

     

    /*

    十二月份天干强度表

    生月\四柱天干        甲              乙              丙              丁              戊              己              庚              辛              壬              癸

    子月                            1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0             1.2             1.2

    丑月                            1.06 1.06 1.0             1.0             1.1             1.1             1.14 1.14 1.1             1.1

    寅月                            1.14 1.14 1.2             1.2             1.06 1.06 1.0             1.0             1.0             1.0

    卯月                            1.2             1.2             1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0

    辰月                            1.1             1.1             1.06 1.06 1.1             1.1             1.1             1.1             1.04 1.04

    巳月                            1.0             1.0             1.14 1.14 1.14 1.14 1.06 1.06 1.06 1.06

    午月                            1.0             1.0             1.2             1.2             1.2             1.2             1.0             1.0             1.0             1.0

    未月                            1.04 1.04 1.1             1.1             1.16 1.16 1.1             1.1             1.0             1.0

    申月                            1.06 1.06 1.0             1.0             1.0             1.0             1.14 1.14 1.2             1.2

    酉月                            1.0             1.0             1.0             1.0             1.0             1.0             1.2             1.2             1.2             1.2

    戌月                            1.0             1.0             1.04 1.04 1.14 1.14 1.16 1.16 1.06 1.06

    亥月                            1.2             1.2             1.0             1.0             1.0             1.0             1.0             1.0             1.14 1.14

    */

     

    double TianGan_Strength [12][10] =

    {

             {1.2, 1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0,  1.2,  1.2},

             {1.06,        1.06,         1.0,  1.0,  1.1,  1.1,  1.14,         1.14,         1.1,  1.1},

             {1.14,        1.14,         1.2,  1.2,  1.06,         1.06,         1.0,  1.0,  1.0,  1.0},

             {1.2, 1.2,  1.2,  1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0},

             {1.1, 1.1,  1.06,         1.06,         1.1,  1.1,  1.1,  1.1,  1.04,         1.04},

             {1.0, 1.0,  1.14,         1.14,         1.14,         1.14,         1.06,         1.06,         1.06,         1.06},

             {1.0, 1.0,  1.2,  1.2,  1.2,  1.2,  1.0,  1.0,  1.0,  1.0},

             {1.04,        1.04,         1.1,  1.1,  1.16,         1.16,         1.1,  1.1,  1.0,  1.0},

             {1.06,        1.06,         1.0,  1.0,  1.0,  1.0,  1.14,         1.14,         1.2,  1.2},

             {1.0, 1.0,  1.0,  1.0,  1.0,  1.0,  1.2,  1.2,  1.2,  1.2},

             {1.0, 1.0,  1.04,         1.04,         1.14,         1.14,         1.16,         1.16,         1.06,         1.06},

             {1.2, 1.2,  1.0,  1.0,  1.0,  1.0,  1.0,  1.0,  1.14,         1.14}

    };

     

    /*

    十二月份地支强度表

     

                            生月       子月         丑月         寅月         卯月         辰月         巳月         午月         未月         申月         酉月         戌月         亥月        

    地支         支藏

    子              癸                       1.2             1.1             1.0             1.0             1.04 1.06 1.0             1.0             1.2             1.2             1.06 1.14

    丑              癸                       0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36 0.36 0.318        0.342

    丑              辛                       0.2             0.228        0.2             0.2             0.23 0.212        0.2             0.22 0.228        0.248        0.232        0.2           

    丑              己                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            

    寅              丙                       0.3             0.3             0.36 0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.342        0.318       

    寅              甲                       0.84 0.742        0.798        0.84 0.77 0.7             0.7             0.728        0.742        0.7             0.7             0.84

    卯              乙                       1.2             1.06 1.14 1.2             1.1             1.0             1.0             1.04 1.06 1.0             1.0             1.2            

    辰              乙                       0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36

    辰              癸                       0.24 0.22 0.2             0.2             0.208        0.2             0.2             0.2             0.24 0.24 0.212        0.228       

    辰              戊                       0.5             0.55 0.53 0.5             0.55 0.6             0.6             0.58 0.5             0.5             0.57 0.5            

    巳              庚                       0.3             0.342        0.3             0.3             0.33 0.3             0.3             0.33 0.342        0.36 0.348        0.3            

    巳              丙                       0.7             0.7             0.84 0.84 0.742        0.84 0.84 0.798        0.7             0.7             0.728        0.742       

    午              丁                       1.0             1.0             1.2             1.2             1.06 1.14 1.2             1.1             1.0             1.0             1.04 1.06

    未              丁                       0.3             0.3             0.36 0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318       

    未              乙                       0.24 0.212        0.228        0.24 0.22 0.2             0.2             0.208        0.212        0.2             0.2             0.24

    未              己                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            

    申              壬                       0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36 0.36 0.318        0.342       

    申              庚                       0.7             0.798        0.7             0.7             0.77 0.742        0.7             0.77 0.798        0.84 0.812        0.7            

    酉              辛                       1.0             1.14 1.0             1.0             1.1             1.06 1.0             1.1             1.14 1.2             1.16 1.0            

    戌              辛                       0.3             0.342        0.3             0.3             0.33 0.318        0.3             0.33 0.342        0.36 0.348        0.3            

    戌              丁                       0.2             0.2             0.24 0.24 0.212        0.228        0.24 0.22 0.2             0.2             0.208        0.212       

    戌              戊                       0.5             0.55 0.53 0.5             0.55 0.57 0.6             0.58 0.5             0.5             0.57 0.5            

    亥              甲                       0.36 0.318        0.342        0.36 0.33 0.3             0.3             0.312        0.318        0.3             0.3             0.36

    亥              壬                        0.84 0.77 0.7             0.7             0.728        0.742        0.7             0.7             0.84 0.84 0.724        0.798       

    */

    struct ZISTRENGTH {

             _TCHARdiZhi;

             _TCHARzhiCang;

             doublestrength[12];

    };

     

    ZISTRENGTHDiZhi_Strength [] =

    {

             {L'子', L'癸', {1.2,1.1, 1.0, 1.0,        1.04, 1.06, 1.0,1.0, 1.2, 1.2, 1.06, 1.14}},     

             {L'丑', L'癸', {0.36,0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36, 0.36, 0.318, 0.342}},

             {L'丑', L'辛', {0.2,0.228, 0.2, 0.2, 0.23, 0.212, 0.2,         0.22,0.228, 0.248, 0.232, 0.2}},              

             {L'丑', L'己', {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},                 

             {L'寅', L'丙', {0.3,0.3, 0.36, 0.36, 0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.342, 0.318}},   

             {L'寅', L'甲', {0.84,0.742, 0.798, 0.84, 0.77, 0.7, 0.7, 0.728, 0.742, 0.7, 0.7, 0.84}},   

             {L'卯', L'乙', {1.2,1.06, 1.14, 1.2, 1.1, 1.0, 1.0, 1.04, 1.06, 1.0, 1.0, 1.2}},             

             {L'辰', L'乙', {0.36,0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36}},   

             {L'辰', L'癸', {0.24,0.22,  0.2, 0.2, 0.208, 0.2, 0.2, 0.2,0.24, 0.24, 0.212, 0.228}},       

             {L'辰', L'戊', {0.5,0.55, 0.53, 0.5, 0.55, 0.6, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},          

             {L'巳', L'庚', {0.3,0.342, 0.3, 0.3, 0.33, 0.3, 0.3, 0.33, 0.342, 0.36, 0.348, 0.3}},          

             {L'巳', L'丙', {0.7,0.7, 0.84, 0.84, 0.742, 0.84, 0.84, 0.798, 0.7, 0.7, 0.728, 0.742}},   

             {L'午', L'丁', {1.0,1.0, 1.2, 1.2, 1.06, 1.14, 1.2, 1.1, 1.0, 1.0, 1.04, 1.06}},   

             {L'未', L'丁', {0.3,0.3, 0.36, 0.36, 0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318}},   

             {L'未', L'乙', {0.24,0.212, 0.228, 0.24, 0.22, 0.2, 0.2, 0.208, 0.212, 0.2, 0.2, 0.24}},   

             {L'未', L'己', {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},                 

             {L'申', L'壬', {0.36,0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36, 0.36, 0.318, 0.342}},   

             {L'申', L'庚', {0.7,0.798, 0.7, 0.7, 0.77, 0.742, 0.7, 0.77, 0.798, 0.84, 0.812, 0.7}},               

             {L'酉', L'辛', {1.0,1.14, 1.0, 1.0, 1.1, 1.06, 1.0, 1.1, 1.14, 1.2, 1.16, 1.0}},             

             {L'戌', L'辛', {0.3,0.342, 0.3, 0.3, 0.33, 0.318, 0.3, 0.33, 0.342, 0.36, 0.348, 0.3}},               

             {L'戌', L'丁', {0.2,0.2, 0.24, 0.24, 0.212, 0.228, 0.24, 0.22, 0.2, 0.2, 0.208, 0.212}},   

             {L'戌', L'戊', {0.5,0.55, 0.53, 0.5, 0.55, 0.57, 0.6, 0.58, 0.5, 0.5, 0.57, 0.5}},                 

             {L'亥', L'甲', {0.36,0.318, 0.342, 0.36, 0.33, 0.3, 0.3, 0.312, 0.318, 0.3, 0.3, 0.36}},   

             {L'亥', L'壬', {0.84,0.77, 0.7, 0.7, 0.728, 0.742, 0.7, 0.7, 0.84, 0.84, 0.724, 0.798}}     

    };

     

    /*

             金 --- 0

             木 --- 1

             水 --- 2

             火 --- 3

             土 --- 4

    */

     

    _TCHAR WuXingTable[5] = {L'金', L'木', L'水', L'火', L'土' };

     

    /*

             天干地支的五行属性表

             天干: 甲-木、乙-木、丙-火、丁-火、戊-土、己-土、庚-金、辛-金、壬-水、癸-水

             地支:子-水、丑-土、寅-木、卯-木、辰-土、巳-火、午-火、未-土、申-金、酉-金、戌-土、亥-水

    */

     

    int TianGan_WuXingProp[10] = {1, 1, 3, 3, 4,4, 0, 0, 2, 2};

    int DiZhi_WuXingProp[12] = {2, 4, 1, 1, 4,3, 3, 4, 0, 0, 4, 2};

    int GenerationSourceTable[5] = {4, 2, 0, 1,3};

     

    int ComputeGanIndex(_TCHAR gan)

    {

             inti;

             for(i=0; i < 10; i++)

                       if(TianGan[i] == gan) break;

             if(i >= 10) return -1;

             returni;

    }

     

    int ComputeZhiIndex(_TCHAR zhi)

    {

             inti;

             for(i=0; i < 12; i++)

                       if(DiZhi[i] == zhi) break;

             if(i >= 12) return -1;

             returni;

    }

     

    static _TCHAR sResultBuf[1024];   // 用作八字测算结果返回的字符缓冲区

     

    // 根据八字计算五行平衡

    // 输入参数:bazi,年月日时的干支,即俗称的八字

    // 输出结果:分析结果字符串,Unicode编码

    _TCHAR * EvalBazi(_TCHAR *bazi)

    {

             doublestrengthResult[5];

             intmonthIndex = ComputeZhiIndex(bazi[3]);

             if(monthIndex == -1) goto ERROR_CASE;

     

             wcscpy(sResultBuf,bazi);

             wcscat(sResultBuf,L"\n\n");

             for(int wuXing = 0; wuXing < 5; wuXing++) {

                       doublevalue1 = 0.0, value2 = 0.0;

                       inti;

                       //扫描4个天干

                       for(i  = 0; i <8; i+=2) {

                                TCHARgan = bazi[i];

                                intindex = ComputeGanIndex(gan);

                                if(index == -1) goto ERROR_CASE;

     

                                if(TianGan_WuXingProp[index] == wuXing)

                                         value1+= TianGan_Strength[monthIndex][index];

                       }

     

                       //扫描支藏

                       for(i  = 1; i <8; i+=2) {

                                TCHARzhi = bazi[i];

                                for(intj = 0; j < sizeof (DiZhi_Strength)/sizeof (DiZhi_Strength[0]); j++) {

                                         if(DiZhi_Strength[j].diZhi == zhi) {

                                                   intzhiCangIndex = ComputeGanIndex(DiZhi_Strength[j].zhiCang);

                                                   if(zhiCangIndex == -1) goto ERROR_CASE;

                                                   if(TianGan_WuXingProp[zhiCangIndex] == wuXing) {

                                                            value2+= DiZhi_Strength[j].strength[monthIndex];

                                                            break;

                                                   }

                                         }

                                }

                       }

     

                       strengthResult[wuXing]= value1 + value2;

     

                       //输出一行计算结果

                       {

                                _TCHARpreStr[128];

                                chartmpBuf[128];

                                _TCHARtmpWBuf[256];

                                sprintf(tmpBuf,":%.3f + %.3f = %.3f\n", (float)value1, (float)value2,(float)(value1+value2));

                                MultiByteToWideChar(CP_ACP, 0, tmpBuf, strlen(tmpBuf)+1,

                                         tmpWBuf,sizeof(tmpWBuf)/sizeof(_TCHAR) );

                                wcscpy(preStr,L"金:\t");

                                preStr[0]= WuXingTable[wuXing];

                                wcscat(sResultBuf,preStr);

                                wcscat(sResultBuf,tmpWBuf);

                       }

             }

            

             //根据日干求命里属性

             intfateProp, srcProp;

     

             {

                       _TCHARtmpWBuf[256];

                       fateProp= TianGan_WuXingProp[ComputeGanIndex(bazi[4])];

                       if(fateProp == -1) goto ERROR_CASE;

                       wcscpy(tmpWBuf,L"\n命属金\n\n");

                       tmpWBuf[3]= WuXingTable[fateProp];

                       wcscat(sResultBuf,tmpWBuf);

     

             }

     

             //求同类和异类的强度值

             srcProp= GenerationSourceTable[fateProp];

             {

                       _TCHARpreStr[128];

                       chartmpBuf[128];

                       _TCHARtmpWBuf[256];

     

                       doubletongLei = strengthResult[fateProp] + strengthResult[srcProp];

                       doubleyiLei = 0.0;

                       for(inti = 0; i < 5; i ++) yiLei += strengthResult[i];

                       yiLei-= tongLei;

                      

                       sprintf(tmpBuf,"%.3f+ %.3f = %.3f\n", (float)strengthResult[fateProp],(float)strengthResult[srcProp],

                                (float)tongLei);

                       MultiByteToWideChar(CP_ACP, 0, tmpBuf, strlen(tmpBuf)+1,

                                tmpWBuf,sizeof(tmpWBuf)/sizeof(_TCHAR) );

                       wcscpy(preStr,L"同类:金+金,");

                       preStr[3]= WuXingTable[fateProp];

                       preStr[5]= WuXingTable[srcProp];

                       wcscat(sResultBuf,preStr);

                       wcscat(sResultBuf,tmpWBuf);

     

                       sprintf(tmpBuf,"%.3f\n", (float)yiLei);

                       MultiByteToWideChar(CP_ACP, 0, tmpBuf, strlen(tmpBuf)+1,

                                tmpWBuf,sizeof(tmpWBuf)/sizeof(_TCHAR) );

                       wcscat(sResultBuf,L"异类:总和为 ");

                       wcscat(sResultBuf,tmpWBuf);

             }

     

             returnsResultBuf;

     

    ERROR_CASE:

            

             return0;

    }

     

    展开全文
  • 天干地支与阴阳五行的关系

    千次阅读 2013-09-17 21:38:17
    天干地支与阴阳五行的关系 中国古人采用干支纪年法,直到现在,我们还经常提到某某年的天干地支是什么,比如...正因为干支自己具有独特的五行属性,人们用干支表示的生辰八字才得以跟五行联系起来,由命理学者根据五行

    天干地支与阴阳五行的关系

    中国古人采用干支纪年法,直到现在,我们还经常提到某某年的天干地支是什么,比如今年是戊子年,去年是丁亥年,其中子和亥分别表示了这两年的属相鼠和猪。因此很少有人不知道天干地支是什么,但很少有人了解干支与阴阳五行之间的密切联系。实际上,每个天干每个地支都有它自己的阴阳五行属性。正因为干支自己具有独特的五行属性,人们用干支表示的生辰八字才得以跟五行联系起来,由命理学者根据五行生克来推理出人的命运。
           既然讲命理,那我们就从最基础的东西讲起,先来认识一下十天干和十二地支。
           干支,顾名思义,是主干和枝丫的意思。有干有支,这才是一棵完整的树,因此天干在上地支在下,这样组合起来才是一个完整的整体。古人最初对天干地支的命名确实有这层含义,但是在八字命理学中,地支倒更像是植物在地下生长的根须。为了方便进行下一步学习,大家不妨这样理解,天干地支的组合就像一棵树,天干是树木在地面之上的枝干部分,而地支则是树木在地下蜿蜒生长的根部。这样的比喻,在命理学上是有其重要意义的,大家会慢慢体会得到。
           干支诞生的年代已经相当久远了,具体不详,但可以确定,在商之前一定已经存在了,因为我们可以看到,商朝的帝王们都喜欢取一些与干支有关的名字,比如太甲,天乙等等。一年十二个月,恰好有十二地支,由此我们容易想到,古人最初是用地支来记月的,但是后来就开始用天干地支组合起来的六十甲子记年、月、日、时,也就有了完整的干支纪年法。年月日时各取一天干一地支也就有了我们平时所说的“生辰八字”。
           天干是十个,五行是五个,但金木水火土又分阴阳,于是二五一十,正好配上了十天干。比如甲是阳木,乙是阴木,丙是阳火,丁是阴火。具体有歌诀写道:“东方甲乙木,南方丙丁火,西方庚辛金,北方壬癸水,中央戊己土。”
           十天干在单数位次上的属性为阳,在双数位次上的属性为阴,一阴一阳相互交替,邻接的天干又是五行属性上相生的关系。比如甲乙木生丙丁火,丙丁火生戊己土,等等。
           这样一来,十天干的五行属性甚至方位含义都一目了然,非常简单明了。但是十二地支就远比天干要复杂。我们知道,地面之上的东西都清晰明白,很容易看得一清二楚,地面之下的东西却隐藏得很深入,根须嘛,容易交错纠缠难以分辨,这样,地支的属性也就随之变得复杂难辨起来。
           我们把十二地支分成三组,每四个为一组,分别是四旺,四生,四库。
           四旺,这是最简单的一组,它们是子、午、卯、酉,它们的五行属性十分“单纯”,即,子是阴水,午是阴火,卯是阴木,酉是阴金。由于在十天干中癸表示阴水,所以我们又说,子中藏癸,同样的,我们说午中藏丁,卯中藏乙,酉中藏辛。这个“藏”字,多少有些蕴藏储备的含义,地支在地下嘛,自然是藏起来的部分。换一个角度,我们也可以认为子是癸水的根,午是丁火的根,卯是乙木的根,而酉是辛金的根。地支,本来就是天干遗留在地下的根须,只不过子午卯酉这四条根并未经过纠缠,十分单纯而容易分辨。
           四生,这一组也相对简单,分别是寅、巳、申、亥。寅,这条根是由三段根须缠起来的,它们分别是阳木,阳火和阳土,也就是甲丙戊,其中甲木的根要粗一些,我们称甲木是寅的地支本气;巳,也是由三条根缠起来的,分别是阳火,阳土和阳金,也就是丙戊庚,其中丙火是巳的地支本气;申,同样是三条根互相缠绕而成,分别是阳土,阳金和阳水,也就是戊庚壬,其中庚金是申的地支本气;亥,这个比较个别,是两条根缠绕起来的,它们是阳水和阳木,也即壬甲,其中壬水是亥的地支本气。
           我们容易发现两条规律:第一,这组地支的藏干全是阳性的。没错,甲丙戊庚壬正好全是阳性五行,并且计算起来,除了戊土出现过三次之外,其余的都出现过两次。第二,这四个地支的本气分别是木火金水,唯独没有土。没错,以上两点都充分说明,土是一个特殊的五行。为什么特殊呢?
           我们来看四库。 除去上面谈到的四旺四生,十二地支就只剩下辰戌丑未四个,这就是我们要说的四库。这四个地支,本气全是土,其中辰戌本气是阳土,丑未本气是阴土。土的基本特性是藏纳、承载和包容,因此我们有了四库的叫法。而这四个库,也正好是五行中其它四位的库,辰为水库,戌为火库,丑为金库,未为木库。
           库,也叫墓,是五行藏匿安息的所在。既然是水库,那辰中一定有水,但入墓安息的水显然是阴性的,因此,辰中有癸水。同理,火库戌中有阴火丁,金库丑中有阴金辛,木库未中有阴木乙。
           水生木,水库中往往会滋生出一些草木的根芽,因此辰中又有木,同样是藏匿墓库之中,自然是阴木乙了。木生火,木库中常常迸出零星的火花,因此未中又有阴火丁。金生水,金库丑中便也有阴水癸。唯一不同的是火库戌,火本来生土,但戌的本气就是土,因此土气越发壮大,最后便由土气生出了阴金辛。
           综上可知,四库全部包含三个五行,辰中乙戊癸,戌中辛戊丁,丑中癸己辛,未中乙己丁。
           OK,到这里,天干地支与阴阳五行的关系便基本讲明白了,不明白的朋友还可以继续提问,我会给大家补充解答。感兴趣的朋友请继续关注下一篇,:)。
           另附:天干地支的原始意义
    1.天干
    (甲)象草林破土而萌,阳在内而被阴包裹。又有认为,甲者铠甲也,把万物冲破其甲而突出了。
    (乙)草木初生,枝叶柔软屈曲伸长。乙者轧也。
    (丙)丙,炳也,如赫赫太阳,炎炎火光,万物皆炳然著见而明。
    (丁)壮也,草木成长壮实,好比人的成丁。
    (戊)茂也,象征大地草木茂盛。
    (己)起也,纪也,万物仰屈而起,有形可纪。
    (庚)更也,秋收而待来春。
    (辛)金味辛,物成而后有味。又有认为,辛者新也,万物肃然更改,秀实新成。
    (壬)妊也,阳气潜伏地中,万物怀妊。
    (癸)揆也,万物闭藏,怀妊地下,揆然明芽。
    2.地支
    (子)孽也,草木生子,吸土中水分而出,为一阳萌的开始。
    (丑)纽也,草木在土中出芽,屈曲着将要冒出地面。
    (寅)演也,津也,寒土中屈曲的草木,迎着春阳从地面伸展。
    (卯)茂也,日照东方,万物滋茂。
    (辰)震也,伸也,万物震起而生,阳气生发已经过半。
    (巳)起也,万物盛长而起,阴气消尽,纯阳无阴。
    (午)仵也,万物丰满长大,阳起充盛,阴起开始萌生。
    (未)味也,果实成熟而有滋味。
    (申)身也,物体都已长成。
    (酉)老也,犹也,万物到这时都犹缩收敛。
    (戌)灭也,草木凋零,生气灭绝。
    (亥)劾也,阴气劾杀万物,到此已达极点。

    十天干的五行属性:

    天干

    五行

    阳木

    阴木

    阳火

    阴火

    阳土

    阴土

    阳金

    阴金

    阳水

    阴水

    身体部位

    头胆

    肩肝

    额小肠

    齿舌心

    鼻胃

    面脾

    筋大肠

    胸肺

    胫膀胱

    足肾

    十二地支的五行属性:

    地支

    生肖

    五行

    阳水

    阴土

    阳木

    阴木

    阳土

    阴火

    阳火

    阴土

    阳金

    阴金

    阳土

    阴水

    月建

    十一

    十二

    正月

    二月

    三月

    四月

    五月

    六月

    七月

    八月

    九月

    十月

     

     

     

     

     

    怎样计算宝宝生辰八字?

      举例来说,如果宝宝出生于公元2010年5月6日8时,根据干支纪年的方法来计算,可得出生辰八字为:庚寅(年) 庚辰(月) 丙辰(日) 壬辰(时)。

      你一定很想知道,这是怎么算出来的?下面我们会分别介绍一下宝宝生辰八字也叫四柱八字的具体计算方法。

      年柱,就是将宝宝出生的年份用干支来表示(注意上一年和下一年的分界线是以立春这一天的交节时刻划分的)。你可以通过黄历来查找,很方便。如果宝宝出生的年份是2010年,农历是庚寅年,年柱即为庚寅。

      月柱,就是用干支表示宝宝出生年月所处的节令(注意月干支不是以农历每月初一为分界线, 而是以节令为准)。具体如下:

    一月为寅月:从立春到惊蛰
    二月为卯月:从惊蛰到清明
    三月为辰月:从清明到立夏
    四月为巳月:从立夏到芒种
    五月为午月:从芒种到小暑
    六月为未月:从小暑到立秋
    七月为申月:从立秋到白露
    八月为酉月:从白露到寒露
    九月为戌月:从寒露到立冬
    十月为亥月:从立冬到大雪
    十一月为子月:从大雪到小寒
    十二月为丑月:从小寒到立春

      如果宝宝出生于农历庚寅年三月,对照年上起月表可以查出宝宝的月柱为庚辰。

    年上起月表

      查询方法:如果宝宝出生的年份是甲年或己年(年柱天干为甲或己),则正月为丙寅,二月为丁卯,三月为戊辰……以此类推即可。

    月/

    甲 己

    乙 庚

    丙 辛

    丁 壬

    戊 癸

    正 月

    丙 寅

    戊 寅

    庚 寅

    壬 寅

    甲 寅

    二 月

    丁 卯

    己 卯

    辛 卯

    癸 卯

    乙 卯

    三 月

    戊 辰

    庚 辰

    壬 辰

    甲 辰

    丙 辰

    四 月

    己 巳

    辛 巳

    癸 巳

    乙 巳

    丁 巳

    五 月

    庚 午

    壬 午

    甲 午

    丙 午

    戊 午

    六 月

    辛 未

    癸 未

    乙 未

    丁 未

    己 未

    七 月

    壬 申

    甲 申

    丙 申

    戊 申

    庚 申

    八 月

    癸 酉

    乙 酉

    丁 酉

    己 酉

    辛 酉

    九 月

    甲 戌

    丙 戌

    戊 戌

    庚 戌

    壬 戌

    十 月

    乙 亥

    丁 亥

    己 亥

    辛 亥

    癸 亥

    冬 月

    丙 子

    戊 子

    庚 子

    壬 子

    甲 子

    腊 月

    丁 丑

    己 丑

    辛 丑

    癸 丑

    乙 丑



      日柱,就是用农历的干支代表人出生的那一天(注意日与日的分界线是以子时来划分的,即晚上的十一点)。干支记日每六十天一循环。由于大小月及平闰年不同的缘故, 日干支需要查找万年历。例如:宝宝出生于2010年5月6日可以查得日柱为丙辰。

      时柱,就是用干支表示人出生的时辰。一个时辰在农历记时中跨两个小时,故一天共十二个时辰。

    具体如下:

    子时: 23点至1点

    寅时: 3点至5点

    辰时: 7点至9点

    午时: 11点至13点

    申时: 15点至17点

    戌时: 19点至21点

    丑时: 1点至3点

    卯时: 5点至7点

    巳时: 9点至11点

    未时: 13点至15点

    酉时: 17点至19点

    亥时: 21点至23点



      如果宝宝出生于5月6日8时,日柱天干为丙,可以对照日上起时表查出时柱为壬辰。

    日上起时表

    时/

    甲 己

    乙 庚

    丙 辛

    丁 壬

    戊 癸

    甲 子

    丙 子

    戊 子

    庚 子

    壬 子

    乙 丑

    丁 丑

    己 丑

    辛 丑

    癸 丑

    丙 寅

    戊 寅

    庚 寅

    壬 寅

    甲 寅

    丁卯

    己 卯

    辛 卯

    癸 卯

    乙 卯

    戊 辰

    庚 辰

    壬 辰

    甲 辰

    丙 辰

    己 巳

    辛 巳

    癸 巳

    乙 巳

    丁 巳

    庚 午

    壬 午

    甲 午

    丙 午

    戊 午

    辛 未

    癸 未

    乙 未

    丁 未

    己 未

    壬 申

    甲 申

    丙 申

    戊 申

    庚 申

    癸 酉

    乙 酉

    丁 酉

    己 酉

    辛 酉

    甲 戌

    丙 戌

    戊 戌

    庚 戌

    壬 戌

    乙 亥

    丁 亥

    己 亥

    辛 亥

    癸 亥

     

    怎样根据宝宝生辰八字推算五行?

      知道了宝宝的生辰八字,就可以推算五行了。根据天干地支对应的五行属性,从天干地支五行对照表中,可以推算出生辰八字为:庚寅 庚辰 丙辰 壬辰的宝宝,五行属性为:金木 金土 火土 水土。

    天干地支五行对照表

    五 行

    天 干

    地 支

    甲、乙

    寅、卯

    丙、丁

    巳、午

    戊、己

    辰、丑、戌、未

    庚、辛

    申、酉

    壬、癸

    亥、子

     

     

    展开全文
  • AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子 经典的物理统一在原子上,量子的物理统一在量子上,化学统一在元素上,而生命统一在DNA上,DNA本身拆干了,其实就是一群元素,...

    AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子

    导读
    经典的物理统一在原子上,量子的物理统一在量子上,化学统一在元素上,而生命统一在DNA上,DNA本身拆干了,其实就是一群元素,按照经典物理和量子物理所进行的组合。
    科学本质上是一种经验主义的认识论,属于哲学的一个分支量子理论,要通过哲学语言,量子属于形而上看不到、摸不着的东西。元气的基本五行,是世界万物的行成与演变的方式。
    生命的本质是化学,化学的本质是物理,物理的本质用数学描述,数学的本质是由我们的某种语言写出来的。
    薛定谔的《生命是什么》指出,生命是一个负熵的过程,万物归于虚无,要一直做功。通过大分子的有序性,来克服小分子和原子的无序性,所构成的一个系统就是生命。

     

    目录

    生命

    1、关于《生命是什么》

    五行

    1、五行起源

    2、阴阳五行 VS 量子理论

    易经

    0、易经中难字的读音

    1、易经是什么?

    2、易经的核心是什么?

    3、易经的表达方式是八卦,而八卦又延伸为六十四卦

    4、易经有何作用?

    5、易经的辨证法则是什么?

    量子理论

    1、量子理论概念

    2、量子理论发展史

    3、量子理论影响

    4、什么是量子理论?

    5、量子理论的解释

    6、量子力学VS经典力学

    物理界最豪华聚会高清大合照


     

     

     

    相关文章
    AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子
    AGI:走向通用人工智能的【生命学&哲学&科学】第二篇——思维、生命科学、客观世界

     

    生命

            薛定谔的《生命是什么》指出,生命是一个负熵的过程,万物归于虚无,要一直做功。通过大分子的有序性,来克服小分子和原子的无序性,所构成的一个系统就是生命。
           七十年代,数论还是一个离散体系(有范围的)。生命的本质是化学,化学的本质是物理,物理的本质用数学描述,数学的本质是由我们的某种语言写出来的。

    1、关于《生命是什么》

            诺贝尔奖得主、奥地利物理学家薛定谔在其1944年的著作《生命是什么?》(What Is Life? )中,提出了一个更加具体但同书名一样发人深省的问题:“是什么让生命系统似乎与已知的物理学定律相悖?”薛定谔当时给出的答案现在看来颇具预见性。他指出,生命的特征在于“密码本”,这个密码本不但可以指导细胞组织和遗传,还能让有机体摆脱热力学第二定律。
           在这本书中,薛定谔提出了生命密码和生命过程负熵的概念,并特别强调用物理和化学的方法研究生命现象的重要性。 本书原来只是一系列通俗科学演讲的结集, 没想到这本为非专家所写的书,最后却成为发现DNA结构并导致分子生物学诞生的关键著作。他的思想影响了一代生物学家,开创了信息生物学研究之先河,对20世纪的生物学革命起到了不可估量的作用。薛定谔以一种令人放松和愉悦的文笔引领读者探索生命这一令人望而生畏的主题,内容深刻而有趣,极具启发性于希望了解生命起源理论的读者来说,本书无疑是最好的选择之一。
            薛定谔关于生命熵平衡的思想可以被看作是研究生物特权,如复制、记忆、衰老、表观遗传修饰和自我调节,如何被理解为不可忽视环境的非平衡复杂性过程的先驱。令人感兴趣的是,环境和偶然性的类似考虑现在被认为是量子力学的核心,其思想是纠缠、退相干和语境。这是否不仅仅是巧合,我们还不能说。                                                         ----转自网络

     

    五行

    1、五行起源

             阴阳本于易经,而五行出于八卦,都基于河图数理。
             五行是中国古代道教哲学的一种系统观,广泛用于中医、堪舆、命理、相术和占卜等方面。五行的意义包涵借着阴阳演变过程的五种基本动态:水(代表润下)、火(代表炎上)、金(代表收敛)、木(代表伸展)、土(代表中和)。中国古代哲学家用五行理论来说明世界万物的形成及其相互关系。它强调整体,旨在描述事物的运动形式以及转化关系。阴阳是古代的对立统一学说,五行是原始的系统论。

                                                          五行相生:木→火→土→金→水
                                                          五行相克:金→木→土→水→火
             相生,是指两类属性不同的事物之间存在相互帮助,相互促进的关系;具体是:木生火,火生土,土生金,金生水,水生木。
             相克,则与相生相反,是指两类不同五行属性事物之间关系是相互克制的;具体是:木克土,土克水,水克火、火克金、金克木。

    2、阴阳五行 VS 量子理论

          量子理论,只有通过哲学语言,量子属于形而上看不到、摸不着的东西。元气的基本五行,世界万物的行成与演变的方式。

     

     

    易经

             《易经》指《连山》、《归藏》、《周易》三部易书。其中《连山》和《归藏》已经失传,现存于世的只有《周易》。从本质上来讲,《易经》是阐述关于变化之书,是博大精深的辩证法哲学书。《易经》被誉为“诸经之首大道之源”,是中华传统文化的总纲领,蕴涵含着朴素深刻的自然法则和和谐辨证思想,是中华民族万千年智慧的结晶。
            《易经》长期被用作“卜筮”。“卜筮”就是对未来事态的发展进行预测,而《易经》便是总结这些预测的规律理论的书。《易经》含盖万有,纲纪群伦,是中华文化的杰出代表;广大精微,包罗万象,亦是中华文明的源头活水。其内容涉及哲学、政治、生活、文学、艺术、科学等诸多领域,是群经之首,儒家、道家共同的经典。

    0、易经中难字的读音

    • 爻:音 yáo ,2声。组成八卦中每一卦的长短横道:爻象。
    • 兑:音 dui,4声。兑卦喜悦可见,快乐照临人。
    • 夬:音 guai,4声。决也,刚决桑也。
    • 彖:音 tuan,4声。本义为“猪跑脱”。篆为从彖声之字。
    • 贞:即祯,“贞”为动词,卜问的意思,“祯”为形容词吉祥的意思。
    • 筮:音 shì。占吉凶,如筮短龟长。



    1、易经是什么?

    • (1)、严格说来《易经》和《易传》构成了《周易》;而《周易》、《连山》、《归藏》又构成了《三易》。《连山》是夏代的易学,《归藏》是殷代的易学,《周易》是周代的易学。可惜,《连山》、《归藏》已失传。
    • (2)、《易经》又称本经,简称《易》,成书于西周初至晚周,距今约三千年前。《易经》由卦辞及爻辞组成共有六十四卦每卦有六爻,共三百八十四爻。而《易传》有十翼即:彖上、彖下、象上、象下、文言、系辞上、系辞下、说卦、序卦、杂卦十篇。《易传》成书于春秋至战国中期,是对易经的注释和发挥。
    • (3)、史学界认为《周易》为伏羲、文王、周公、孔子四圣合著,即伏羲画八卦,文王作卦辞,周公著爻辞,孔子撰《易传》。

     

    2、易经的核心是什么?

             易经的核心就是著名的“三易说”,即:简易、变易、不易。

    • (1)、简易:是指世界上的事物再复杂再深奥,一旦人类的智慧达到,就可以把它们转换成人们容易理解和处理的问题。
    • (2)、变易:是指世界上的万事万物每时每刻都在变化发展着,没有一样东西是不变的,如果离开这种变化,宇宙万物就难以形成。
    • (3)、不易:是指在宇宙间万物皆变的前提下,还有唯一不变的东西存在,就是能变出万象之物的东西不变;即是说万物皆变的规律是永远不变的。

             所谓"不易",就是基本平衡;"变易"就是发展变化,就是不平衡;"简易"就是世界上所有最复杂的事物可以用最简单的符号来概括。发展变化、不平衡是绝对的、永恒的,平衡是相对的、暂时的。

     

    3、易经的表达方式是八卦,而八卦又延伸为六十四卦

    • (1)、八卦是由:乾、兑、离、震、巽、坎、艮、坤八个单卦组成。知道了八卦就可以推出六十四卦。  乾: 天;坤: 地;兑: 水;离: 火;震: 雷;坎: 水;艮: 山;巽: 风 。
    • (2)、在《易经》经文中,用"-"表示阳爻,用"--"表示阴爻。阴阳爻就组成了卦。  
    • (3)、具体说,每一个卦有六个爻,或者是由三个阳爻或三个阴爻组成;或者是由一个阴爻与两个阳爻;或是由一个阳爻与两个阴爻组成。八卦就是八个单卦。再由八个单卦互相重合,组成六十四卦。
    • (4)、“易有太极,是生两仪,两仪生四象,四象生八卦”。阴阳的变化由太极开始,由太极产生出两仪即阴阳。即有阴阳,使相互感应,阳育阴,阴含阳,于是阴中有阳,阳中有阴,所以阴阳二气,又分为四,名曰四象。四象现在一般是指少阳、老阳、少阴、老阴。

     

    4、易经有何作用?

             易经是中国儒家千年总结的哲理和经验,它包罗万象涉及的范围很广,几乎所有的知识都包括在内的一部百科全书。易经给人类带来三把金钥匙。

    • (1)、第一把金钥匙是“阴阳”,世上任何事情阴阳平衡就达到了和谐,和谐就能发展进步。
    • (2)、第二把金钥匙是“五行”,万事万物都离不开五行的身影,风水的命理学和位理学都从它而起。
    • (3)、第三把金钥匙是“八卦”,由八卦延伸为“文王六十四卦”。他告诉我们宇宙的六十四个密码,大千世界都逃脱不了这个秘密。

     

    5、易经的辨证法则是什么?

         "易,穷则变,变则通,通则久。"这是《系辞》中说的,也是《易经》中的一个重要的辨证法则:通变致久。

    • (1)、天道运行的规律:[唯变所适]。事物有变就有常,有常就有变。《易经》就在这种[变动不居]中、显示了[恒常通久]的不变法则,又在这种“恒常通久”中、表现了“唯变所适”的可变规律。这种规律就是所谓的[天行],即天道运行的规律。
    • (2)、事物变化遵循天道运行的规律。世间万物都是变化着的,只有天道规律本身不变,所以事物变化必须遵循天道运行的规律。
    • (3)、所以《易经》认为既然世间万物都是变化着的,只有天道规律本身不变,那么人就应该效法天道,不违天逆常,顺时适变,如此才可以保持长久。
    • (4)、《易经》的两个指导人行为的概念,即[时]与[中]:中]指中庸之道:在天地自然之道正中运行,既不太过,又不不及。[时]指与时势一致:也就是说和谐、与时俱进。



     

     

    量子理论

    1、量子理论概念

             量子(quantum)是现代物理的重要概念。最早是由德国物理学家M·普朗克在1900年提出的。他假设黑体辐射中的辐射能量是不连续的,只能取能量基本单位整数倍,从而很好地解释了黑体辐射的实验现象。
             后来的研究表明,不但能量表现出这种不连续的分离化性质,其他物理量诸如角动量自旋、电荷等也都表现出这种不连续的量子化现象。这同以牛顿力学为代表的经典物理有根本的区别。量子化现象主要表现在微观物理世界。描写微观物理世界的物理理论是量子力学
             量子一词来自拉丁语quantus,意为“有多少”,代表“相当数量的某物质”。自从普朗克提出量子这一概念以来,经爱因斯坦玻尔、德布罗意、海森伯、薛定谔、狄拉克、玻恩等人的完善,在20世纪的前半期,初步建立了完整的量子力学理论。绝大多数物理学家将量子力学视为理解和描述自然的基本理论。

     

    2、量子理论发展史

             在经典物理学中,根据能量均分定理:能量是连续变化的,可以取任意值。19世纪后期,科学家们发现很多物理现象无法用经典理论解释。当时德国物理界聚焦于黑体辐射问题的研究。1900年左右,M·普朗克试图解决黑体辐射问题,他大胆提出量子假设,并得出了普朗克辐射定律,沿用至今。普朗克提出:像原子作为一切物质的构成单位一样,“能量子”(量子)是能量的最小单位。物体吸收或发射电磁辐射,只能以能量量子的方式进行。普朗克在1900年12月14日的德国物理学学会会议中第一次发表能量量子化数值、一个分子摩尔(mol)的数值及基本电荷等。其数值比以前更准确,提出的理论也成功解决了黑体辐射的问题,标志着量子力学的诞生。
             1905年,德国物理学家爱因斯坦把量子概念引进光的传播过程,提出“光量子”(光子)的概念,并提出光同时具有波动和粒子的性质,即光的“波粒二象性”。
             20世纪20年代,法国物理学家德布罗意提出“物质波”概念,即一切物质粒子均具备波粒二象性;德国物理学家海森伯等人建立了量子矩阵力学;奥地利物理学家薛定谔建立了量子波动力学。量子理论的发展进入了量子力学阶段。
             1928年,英国物理学家狄拉克完成了矩阵力学和波动力学之间的数学等价证明,对量子力学理论进行了系统的总结,并将两大理论体系——相对论和量子力学成功地结合起来,揭开了量子场论的序幕。量子理论是现代物理学的两大基石之一,从微观层面理解宏观现象提供了理论基础。

     

    3、量子理论影响

             量子假设的提出有力地冲击经典物理学,促进物理学进入微观层面,奠基现代物理学。但直到现在,物理学家关于量子力学的一些假设仍然不能被充分地证明,仍有很多需要研究的地方。
             经典的物理统一在原子上,量子的物理统一在量子上,化学统一在元素上,而生命统一在DNA上,DNA本身拆干了,其实就是一群元素,按照经典物理和量子物理所进行的组合。

     

    4、什么是量子理论?

             经过几千年的争论,我们现在终于知道了,物质追根究底是由像电子、夸克这样的微观粒子组成的。这些小家伙像乐高积木一样组合在一起,形成了原子和分子,而原子和分子又是拼成宏观世界的“乐高积木”。
             为了描述微观世界是如何运作的,科学家发展出一套叫量子力学的理论。这个理论做出的预言虽然非常古怪(例如,粒子可以同时出现在两个地方),但它是目前物理学中最精确的理论,在过去近百年里经受住了严格的检验。没有量子理论,我们周围的许多技术,包括电脑和智能手机里的芯片,都是不可想象的。
             量子理论很古怪,但它的正确性不容怀疑。科学家们所争论的,仅仅是如何解释它。

     

    5、量子理论的解释

    • 哥本哈根学派的解释:在我们测量之前,确定的现实是不存在的。只有我们在观察的那一刻,观察的行为导致波函数“塌缩”,一种确定的现实才呈现出来。哥本哈根诠释归纳起来有三个核心:玻恩的概率解释、海森堡的不确定性原理、玻尔的互补原理这三大核心原理合力摧毁了我们对世界的认知:前两者合力摧毁了经典世界的因果性,后两者合力捣毁了世界的客观性。
       

      (1)、用一个简单硬币现象来理解哥本哈根诠释        
              一个硬币一般情况下它的状态,我们认为它要么是正面,要么是反面,这是很明确的。但是,有一种情况,它的状态是不明确的,这种情况就是当它在旋转的时候,我们是不知道它是正面还是反面的。我们认为它是量子状态(我们用硬币代替粒子,实际上在宏观世界这不是量子态)。这时,可以用一个波函数来描述它的状态,也即用这个波函数来描述硬币在旋转时正面和反面的概率
               但是,当我们想去测量清楚它到底是正面还是反面时,我们就必须将硬币摁倒,这就破坏了硬币正在旋转的这种量子态,也就是它的波函数坍缩了。而在硬币旋转的时候,硬币就处于正面和反面的叠加态,或者说它即表现出是正面,又表现出是反面,这就类似于量子表现出波动性和粒子性一样。

    • 多世界解释:每一次对量子的测量都将触发无数平行宇宙的诞生,叠加态中的每一个可能性,分别都在每一个新生的宇宙中成为了现实。你之所以观察到薛定谔猫还活着,仅仅因为这个“你”碰巧跟那只活的猫处于同一个新生宇宙中而已。
    • 德布罗意的导波解释:微观粒子的行为跟经典粒子差不多,只是你要把它们想象成像冲浪者一样骑在所谓的导波上。粒子产生波,而波又引导粒子运动,如此反复。

     

    6、量子力学VS经典力学

             说实话,统治我们熟悉的“经典”世界的规则在微观世界基本上都失效了。只有少数几个硕果仅存,像能量守恒、电荷守恒等等。
             “经典”是物理学家用于描述“日常感觉”的术语——当事物的表现不超出你日常经验的范围,我们就说它是“经典”的。但这并不意味着,微观和宏观世界的规律完全“老死不相往来”。作为物理规律,量子规律无疑更基本,但是当很多粒子聚集在一起时,其整体行为就非常趋近于经典物体的行为了,这时你就可以用经典规律来描述。

     

     

    物理界最豪华聚会高清大合照

    送上1927年第五届索尔维会议合影,物理界最豪华聚会高清大合照

     

     

     

     

    参考文章
    薛定谔《生命是什么?》出版75周年纪念
    人人都能懂的量子理论 
    九个问题告诉你,《易经》讲什么?

     

    展开全文
  • RDD 可以通过Persist 持久化将RDD 缓存到内存或者磁盘,当再次用到该RDD 时直接读取就。也可以将RDD 进行检查点,检查点会将数据存储在HDFS 中,该RDD 的所有父RDD 依赖都会被移除。 6) 数据调度弹性 Spark 把这...

    1 什么是RDD

    RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark 中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。在Spark 中,对数据的所有操作不外乎创建RDD、转化已有RDD 以及调用RDD 操作进行求值。每个RDD 都被分为多个分区,这些分区运行在集群中的不同节点上。RDD 可以包含Python、Java、Scala 中任意类型的对象, 甚至可以包含用户自定义的对象。RDD 具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD 允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。RDD 支持两种操作:transformation操作和action操作。RDD 的转化操作是返回一个新的RDD 的操作,比如map()和filter(),而action操作则是向驱动器程序返回结果或把结果写入外部系统的操作。比如count() 和first()。
    Spark 采用惰性计算模式,RDD 只有第一次在一个行动操作中用到时,才会真正计算。Spark 可以优化整个计算过程。默认情况下,Spark 的RDD 会在你每次对它们进行行动操作时重新计算。如果想在多个行动操作中重用同一个RDD , 可以使用RDD.persist() 让Spark 把这个RDD 缓存下来。

    2 RDD 的属性

    从RDD的abstract class中可知:

    * Internally, each RDD is characterized by five main properties:
     *
     *  - A list of partitions
     *  - A function for computing each split
     *  - A list of dependencies on other RDDs
     *  - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
     *  - Optionally, a list of preferred locations to compute each split on (e.g. block locations for
     *    an HDFS file)
    

    1) 一组分片(Partition),即数据集的基本组成单位。
    对于RDD 来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD 时指定RDD 的分片个数,如果没有指定,那么就会采用默认值。默认值就是程序所分配到的CPU Core的数目。
    protected def getPartitions: Array[Partition]
    2) 一个计算每个分区的函数。
    Spark 中RDD 的计算是以分片为单位的,每个RDD都会实现compute 函数以达到这个目的。ompute 函数会对迭代器进行复合,不需要保存每次计算的结果。
    def compute(split: Partition, context: TaskContext): Iterator[T]
    3) RDD 之间的依赖关系。
    RDD 的每次转换都会生成一个新的RDD,所以RDD 之间就会形成类似于流水线一样的前后依赖关系。在部分分区数据丢失时,Spark 可以通过这个依赖关系重新计算丢失的分区数据,而不是对RDD 的所有分区进行重新计算。protected def getDependencies: Seq[Dependency[_]] = deps ​​​​​​​
    4) 一个Partitioner, 即RDD 的分片函数(分区器)。
    当前Spark 中实现了两种类型的分片函数,一个是基于哈希的HashPartitioner,另外一个是基于范围的RangePartitioner。只有对于于key-value 的RDD , 才会有Partitioner, 非key-value 的RDD 的Parititioner 的值是None。Partitioner 函数不但决定了RDD 本身的分片数量, 也决定了parent RDD Shuffle 输出时的分片数量。
    @transient val partitioner: Option[Partitioner] = None
    5) 一个列表, 存储存取每个Partition 的优先位置( preferred location)。
    对于一个HDFS 文件来说,这个列表保存的就是每个Partition 所在的块的位置。按照“移动数据不如移动计算”的理念,Spark 在进行任务调度的时候,会尽可能地将计算任务分配到其所要处理数据块的存储位置。
    protected def getPreferredLocations(split: Partition): Seq[String] = Nil
    RDD 是一个应用层面的逻辑概念。一个RDD 多个分片。RDD 就是一个元数据记录集,记录了RDD 内存所有的关系数据。

    3 RDD 弹性

    1) 自动进行内存和磁盘数据存储的切换
    Spark 优先把数据放到内存中,如果内存放不下,就会放到磁盘里面,程序进行自动的存储切换
    2) 基于血统的高效容错机制
    在RDD 进行转换和动作的时候,会形成RDD 的Lineage 依赖链,当某一个RDD 失效的时候,可以通过重新计算上游的RDD 来重新生成丢失的RDD 数据。
    3) Task 如果失败会自动进行特定次数的重试
    RDD 的计算任务如果运行失败,会自动进行任务的重新计算,默认次数是4 次。
    4) Stage 如果失败会自动进行特定次数的重试
    如果Job 的某个Stage 阶段计算失败,框架也会自动进行任务的重新计算,默认次数也是4 次。
    5) Checkpoint 和Persist 可主动或被动触发
    RDD 可以通过Persist 持久化将RDD 缓存到内存或者磁盘,当再次用到该RDD 时直接读取就行。也可以将RDD 进行检查点,检查点会将数据存储在HDFS 中,该RDD 的所有父RDD 依赖都会被移除。
    6) 数据调度弹性
    Spark 把这个JOB 执行模型抽象为通用的有向无环图DAG,可以将多Stage 的任务串联或并行执行,调度引擎自动处理Stage 的失败以及Task 的失败。
    7) 数据分片的高度弹性
    可以根据业务的特征,动态调整数据分片的个数,提升整体的应用执行效率。RDD 全称叫做弹性分布式数据集(Resilient Distributed Datasets),它是一种分布式的内存抽象,表示一个只读的记录分区的集合,它只能通过其他RDD 转换而创建,为此,RDD支持丰富的转换操作(如map, join, filter, groupBy 等),通过这种转换操作,新的RDD 则包含了如何从其他RDDs 衍生所必需的信息,所以说RDDs 之间是有依赖关系的。基于RDDs 之间的依赖,RDDs 会形成一个有向无环图DAG,该DAG 描述了整个流式计算的流程,实际执行的时候,RDD 是通过血缘关系(Lineage)一气呵成的,即使出现数据分区丢失,也可以通过血缘关系重建分区,总结起来,基于RDD 的流式计算任务可描述为:从稳定的物理存储(如分布式文件系统)中加载记录,记录被传入由一组确定性操作构成的DAG,然后写回稳定存储。另外RDD 还可以将数据集缓存到内存中,使得在多个操作之间可以重用数据集,基于这个特点可以很方便地构建迭代型应用(图计算、机器学习等)或者交互式数据分析应用。可以说Spark 最初也就是实现RDD 的一个分布式系统,后面通过不断发展壮大成为现在较为完善的大数据生态系统,简单来讲,Spark-RDD 的关系类似于Hadoop-MapReduce 关系。

    4 RDD 特点

    RDD 表示只读的分区的数据集,对RDD 进行改动,只能通过RDD 的转换操作,由一个RDD 得到一个新的RDD,新的RDD 包含了从其他RDD 衍生所必需的信息。RDDs 之间存在依赖,RDD 的执行是按照血缘关系延时计算的。如果血缘关系较长,可以通过持久化RDD 来切断血缘关系。
    4.1 分区
    RDD 逻辑上是分区的,每个分区的数据是抽象存在的,计算的时候会通过一个compute函数得到每个分区的数据。如果RDD 是通过已有的文件系统构建,则compute 函数是读取指定文件系统中的数据,如果RDD 是通过其他RDD 转换而来,则compute 函数是执行转换逻辑将其他RDD 的数据进行转换。
    4.2 只读
    RDD 是只读的,要想改变RDD 中的数据,只能在现有的RDD 基础上创建新的RDD。
    由一个RDD 转换到另一个RDD, 可以通过丰富的操作算子实现, 不再像MapReduce那样只能写map 和reduce 了,如下图所示。

    RDD 的操作算子包括两类,一类叫做transformations,它是用来将RDD 进行转化,构建RDD 的血缘关系;另一类叫做actions,它是用来触发RDD 的计算,得到RDD 的相关计算结果或者将RDD 保存的文件系统中。下图是RDD 所支持的操作算子列表。

    4.3 依赖
    RDDs 通过操作算子进行转换,转换得到的新RDD 包含了从其他RDDs 衍生所必需的信息,RDDs 之间维护着这种血缘关系,也称之为依赖。如下图所示,依赖包括两种,一种是窄依赖, RDDs 之间分区是一一对应的, 另一种是宽依赖, 下游RDD 的每个分区与上游RDD(也称之为父RDD)的每个分区都有关,是多对多的关系。


    通过RDDs 之间的这种依赖关系,一个任务流可以描述为DAG(有向无环图),如下图所示,在实际执行过程中宽依赖对应于Shuffle(图中的reduceByKey 和join),窄依赖中的所有转换操作可以通过类似于管道的方式一气呵成执行(图中map 和union 可以一起执行)。

    4.4 缓存
    如果在应用程序中多次使用同一个RDD,可以将该RDD 缓存起来,该RDD 只有在第一次计算的时候会根据血缘关系得到分区的数据,在后续其他地方用到该RDD 的时候,会直接从缓存处取而不用再根据血缘关系计算,这样就加速后期的重用。如下图所示,RDD-1经过一系列的转换后得到RDD-n 并保存到hdfs,RDD-1 在这一过程中会有个中间结果,如果将其缓存到内存,那么在随后的RDD-1 转换到RDD-m 这一过程中,就不会计算其之前的RDD-0 了。

    4.5 checkpoint
    虽然RDD 的血缘关系天然地可以实现容错,当RDD 的某个分区数据失败或丢失,可以通过血缘关系重建。但是对于长时间迭代型应用来说,随着迭代的进行,RDDs 之间的血缘关系会越来越长,一旦在后续迭代过程中出错,则需要通过非常长的血缘关系去重建,势必影响性能。为此,RDD 支持checkpoint 将数据保存到持久化的存储中,这样就可以切断之前的血缘关系, 因为checkpoint 后的RDD 不需要知道它的父RDDs 了, 它可以从checkpoint处拿到数据。
    给定一个RDD 我们至少可以知道如下几点信息:1、分区数以及分区方式;2、由父RDDs衍生而来的相关依赖信息;3、计算每个分区的数据,计算步骤为:1)如果被缓存,则从缓存中取的分区的数据;2)如果被checkpoint,则从checkpoint 处恢复数;3)根据血缘关系计算分区的数据。

    展开全文
  • Android大UI布局的特有属性

    千次阅读 2017-01-02 21:41:06
    Android大UI布局 一、线性布局LinearLayout框架结构如下:独有属性:1、排列方向:vertical 竖向,horizontal 横向
  • 从第五行开始,共5行 return { rowspan: 5, colspan: 1 } } else if (rowIndex === 9) { // 合并第10行到第14行,从第10行开始,共5行 return { rowspan: 5, colspan: 1 } } else { // 其余被合并的行,诸如1、2、3...
  • Android常用大布局属性控制

    千次阅读 2016-07-21 13:53:36
    android:sigleLine —— 如果设置为真的话,则将控件的内容在同一当中进行显示 -->   <!--相对布局时经常用到 android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below ...
  • 想象一个五行五列的布局,网格线就是构成网格所有的线条,五行五列的布局每行就会有6条网格线。 网格轨道就是相邻两条平行的网格线之间的部分。 和flex布局一样,他会有父容器和子项目,在这儿我们称为网格容器...
  • Android大布局介绍&属性设置大全

    万次阅读 2017-02-22 14:31:46
    Android大布局介绍&属性设置大全 标签: androiduirelativelayout布局属性框架 2016-06-20 11:24 466人阅读 评论(0) 收藏 举报  分类: Android基础(13)  版权声明:本文为博主...
  • CSS 属性选择器

    千次阅读 2018-01-11 20:02:34
    属性选择器 在HTML中,可以通过元素各种各样的属性,来给元素增加很多附加信息。如通过 width 属性,可以指定元素的宽度;通过 id 属性,可以区分不同的元素,并通过Javascript来控制这些元素的内容和状态。 以往...
  • ACCESS入门教程()数据的类型和属性 怎样使用表设计器来创建表?  我们已经知道怎样用表向导来设计表了,这一课学习怎样使用表设计器来建立表。 表设计器是Access中设计表的工具,用表向导建立表的时候,它...
  • 自动增长:auto_increment,当给定某个字段该属性之后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增加后,填充数据。 通常自动增长用于逻辑主键。 原理 自动增长的原理: 1、 ...
  • CSS 单词换行 word-break属性

    万次阅读 2018-02-14 21:32:52
    单词换行word-break属性用来规定自动换行的...normal 表示根据语言自身的换行规则,确定换行方式,中文将容器边界处的汉字换到下一,西方文字则将整个单词换到下一;keep-all 表示不允许把单词截断,只能在半角...
  • CSS 行高 line-height属性

    千次阅读 2018-02-13 22:18:07
    行高在CSS中,通过 line-height属性来定义行高,行高是指相邻两文本基线之间的垂直距离。那什么是基线呢?对任何一个行内非替换元素,其内容区都会存在四条假想的线,分别是底线(bottom)、基线(baseline)、...
  • css属性列表 和 属性值含义

    千次阅读 2007-10-29 10:33:00
    css属性列表 属性名称字体属性(Font)font-familyfont-stylefont-variantfont-weightfont-size颜色和背景属性ColorBa
  • 【input 标签的 type 属性详解】

    万次阅读 多人点赞 2019-09-03 23:16:31
    input 标签的 type 属性详解1. input 输入标签的type 属性1.1 input 标签的 type类型 属性的常用属性值⑴ type="text"⑵ type="button"⑶ type="checkbox"⑷ type="file"⑸ type="hidden"⑹ type="image"⑺ type=...
  • 一、css基本介绍 CSS全称Cascading Style Sheet层叠样式表,是专用用来为HTML标签添加样式的。 # 注释 /*单行注释*/ /* 多行注释 多行注释 */ .../*这是博客园首页的css样式文件*/ ... 属性1:值1;... 属性2:值2;... 属性3
  • css属性列表_和_属性值含义大全

    千次阅读 2012-10-29 13:06:00
    css属性列表 和 属性值含义 CSS属性: 1、媒体(Media)类型  样式单的一个最重要的特点就是它可以作用于多种媒体,比如页面、屏幕、电子合成器等等。特定的属性只能作用于特定的媒体,如"font-size"属性只对...
  • 本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找。 声明:如果有人认为本文是复制粘贴+翻译而成的,敬请读本文最后的后记。 在Qt Designer中,提供了八大类可视化组件(也称为组件或...
  • ”,就会生成新的对话框模板,并且会自动分配ID,如果要修改ID,则可以右键单击该ID,选择属性,然后在ID所对应的进行修改ID,此处我们修改为IDD_DIALOG_MAIN(具体见下文修改对话框属性)。  在...
  • Spring事务配置的种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较...
  • Excel 属性及方法

    千次阅读 2016-12-21 21:30:33
    含义:用以确定是否显示系统的应用提示和警告信息,如果不想显示,则把些属性设为false,反之亦然。 4、DisplayFormulaBar属性 含义:用以确定是否显示公式编辑栏 5、DisplayScrollBars属性 含义:用以确定...
  • 这里我们不说那些复杂的属性,光说我们通常用的比较多的,android:maxlength 官网API对其的解释为: 第一句,也就是说,他是个inputfilter(输入过滤器)他的作用是通过specifiednumber(你指定的数字)来限制...
  • vue computed计算属性和watch监听事件

    千次阅读 2019-05-15 19:31:49
    我们可能会有这样的需求,一个数据属性在它所依赖的属性发生变化时,也要发生变化,这种情况下,我们最好使用计算属性。 例如在下面这个例子中,如果我们使用监听函数,代码就会变得有点冗余。 <div id="demo"&...
  • Linux文件操作及属性

    千次阅读 多人点赞 2020-09-09 19:59:46
    文章目录前言一、文件的颜色属性二、更改路径绝对路径与相对路径三、文本内容操作四、命令行格式与快速编辑、相关命令ls查看目录、grep过滤与vim编辑总结 前言 本片本章给大家介绍LInux文件属性及操作方式,快来看...
  • 实体集与属性

    千次阅读 2018-03-25 21:47:43
    7.71使用实体集与属性考虑使用附加属性电话号码的实体设置指导(图7.17 a)可以很容易地认为,手机是一个独立的实体,带有属性的电话号码和位置;位置可能是手机所在的办公室或家庭,移动电话(手机)可能会被“移动...
  • VS 中PageLayout 属性设置

    千次阅读 2012-12-16 20:57:26
    视频中说网页有一个PageLayout属性,可找了半天也没有找到,于是开始从网上查了查原因,原来从Vs2003开始网页的这个属性就已经去掉了,不过,还是可以设置成以前那种布局方式的。    首先,让我们先熟悉一个概念...
  • Flutter TextField常见属性设置

    万次阅读 2019-06-18 12:38:17
    这边只是把 TextField 中一些 常用到 的属性拉出来讲。 一、监听 1、不关联控制器 TextField( onSubmitted: (value){ print("onSubmitted 点击了键盘的确定按钮,输出的信息是:${value}"); }, ...
  • 部分android控件属性总结

    千次阅读 2015-03-02 16:57:15
    做安卓应用开发,不得不用xml代码写界面布局,各种控件各种属性太多太多了,有的属性之前还根本没有用过,今天终于花点时间,在网上淘了淘,加上平时工作中用的,把一些属性写下来,下次用的时候就可以翻一翻了。...
  • WinForm常用窗体属性及控件

    千次阅读 2015-12-27 15:56:14
    WinForm常用窗体属性: Form常用属性 AutoSizeMode属性 :值是: GrowAndShrink不能调整窗体大小 ;值是:GrowOnly 可以改变大小 (1)Name属性:用来获取或设置窗体的名称。 (2)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,930
精华内容 66,372
关键字:

五行属性如何确定