新乡市华夏邵雍易学文化研究会新乡市华夏邵雍易学文化研究会

历史渊源历史渊源

您现在的位置:首页 > 历史渊源 > 详情

邵雍与二进制发明

阅读:1162 发布时间:09-16 来源:本站

姜广辉:邵雍的“加一倍法”与“二进制”的一致性

邵雍(公元1011~1077年),字尧夫,谥康节,是中国北宋时期著名的哲学家,主要哲学著作有《皇极经世书》。他发展《周易》象数学,以“数”作为其哲学思想的逻辑起点。他提出一种《周易》先天学,此学有关于伏羲八卦与六十四卦卦序排列的四种图表,称为《伏羲四图》,即《先天图》。

近二十多年来学术界讨论的一个非常热门的话题就是:德国大哲学家、数学家莱布尼茨(gottfriend wilhelm leibniz,1646-1716)发明二进制与邵雍《先天图》的关系。参加这场讨论的有西方包括李约瑟(joseph needham,1900-1995)在内的科学史家,以及国内许多著名的科学史与中国哲学史的专家学者。讨论的焦点大致有两个:一是邵雍的《先天图》卦序是否一种二进制的记数方法?或是一种“无意识的巧合”而符合二进制的记数方法?二是莱布尼茨发明二进制是否受了邵雍《先天图》的启发?主流的学术观点认为邵雍的《先天图》不是二进制的记数方法,或至少不是一种自觉运用的二进制的记数方法;莱布尼茨在其发明二进制之前并未看到邵雍的《先天图》。

对于这一问题之所以长期争论,有人归结为这样一种原因,即懂得《周易》的学者不大懂得自然科学,而懂得自然科学的学者又往往不懂《周易》。这确实是一个重要的原因。但这又并不是绝对的,莱布尼茨用二进制的视角去读《先天图》,并不需要他很懂《周易》;而《周易》有几千年的发展历史,谁又可以说完全弄懂了它?况且,邵雍的《皇极经世书》又是一部很难懂的书。

在笔者看来,首先应懂得怎样去读邵雍的《先天图》,从中看它的卦序是不是二进制的记数方法,它如何是或如何不是二进制的记数方法。如果说邵雍当时已经发明、并自觉运用了二进制的记数方法,那莱布尼茨发明二进制时是否受了邵雍《先天图》启发的问题就已经不那么重要了。如果不是这样,那莱布尼茨发明二进制时即使看到了邵雍的《先天图》,那又能说明什么呢?

邵雍的《先天图》四图的卦序都遵循着一种逻辑法则,当时被称为“加一倍法”。所谓“加一倍法”即是今天严格意义上的“二进制”的记数方法。其中有二图比较直观,兹附图如下:


邵雍的《先天图》无论八卦还是六十四卦,其卦序顺读都是始《乾》终《坤》,的绝大多数学者都按顺读的的方法来读它,这当然不容易发现其中的二进制的记数方法。但邵雍已经指出:“夫易之数,由逆而成矣。”(《皇极经世书》卷十三)他告诉考察《先天图》的易数关系的要诀是“逆数”,其中包括卦序的“逆数”和爻序的“逆数”。卦序的“逆数”是从《坤》卦至《乾》卦,如果将卦画中的 邵雍的“加一倍法”与“二进制”的一致性 设定为“0”,邵雍的“加一倍法”与“二进制”的一致性 设定为“1”,那上面的《伏羲八卦次序图》正好是按二进制记数方法所表示的0-7的自然数表:


《伏羲六十四卦方位图》在六十四卦的圆图中,又置有一个六十四卦的方图。无论圆图和方图,卦序之中都内在地体现严格意义上的二进制的记数方法。其中的方图更为典型而直观,读懂它的要诀就是“逆数”,即由左向右,第一行始坤终否,接第二行始谦终遯,再接第三行始师终讼,以下接第四行、第五行、第六行、第七行,最后接第八行始泰终乾。而这正是按二进制方法所表示的 0-63的自然数表:



需要指出的是,《先天图》的二进制数表是以《周易》卦画为形式的。从易数的观点看,卦画所表示的是数,而不是象。其记数方式是通过两个基本的卦画符号邵雍的“加一倍法”与“二进制”的一致性 和邵雍的“加一倍法”与“二进制”的一致性 来进行的。而爻位就是二进制数的位值。先天八卦图体现的是三位二进制数表(0-7),先天六十四卦图体现的是六位二进制数表(0-63)。

以上所说,是读懂《先天图》卦序的要诀:卦序的“逆数”。而要进一步理解先天易数的具体进位方法,还有一个要诀,就是爻序的“逆数”:由低数位向高数位进位,是上爻向五爻进位,五爻向四爻进位,四爻向三爻进位,三爻向二爻进位,二爻向初爻进位。而进位的原则是逢二进一位。如剥邵雍的“加一倍法”与“二进制”的一致性000001为自然数1。若加1,则以此1加上原来的1而为2,则进一位为比邵雍的“加一倍法”与“二进制”的一致性000010,为自然数2。再加1,因此数位上是0,则不须进位,将0改为1而为观邵雍的“加一倍法”与“二进制”的一致性000011,为自然数3。再加1,因观邵雍的“加一倍法”与“二进制”的一致性000011后两数位为11,则连续进两位而为豫邵雍的“加一倍法”与“二进制”的一致性000100,为自然数4。如此类推。

现代国内外有学者提出邵雍《太极图》的易数关系并不是一种自觉运用的二进制的记数方法。认为,如果邵雍不是自觉运用“二进制”的记数方法排出这一卦序,想不出他还可能用其他方法排出这种卦序,而正巧与“二进制”的数表完全相吻合。因为大家都知道,如果对六十四卦任意排列组合,那可以排出的卦序的种类,应是64的阶乘:1乘2乘3乘4……乘64 ,其结果将是一个无比庞大的数字。而邵雍能一卦不差地排列出符合二进制数表的卦序,如果将这说成是一种“无意识的巧合”,那此种“巧合”的机率渺乎其微,几乎完全不可能。这也就从反过来说明邵雍已经发明并能熟练运用“二进制”的记数方法。问题在于,邵雍虽然已经发明了二进制的记数方法,但除了能逻辑地处理卦序关系外,还不能将此二进制的记数方法派上其他用场。

邵雍的这项发明,已为当时的程颢所理解,并为之命名为“加一倍法”。有一次程颢对邵雍说:“尧夫之数,只是加一倍法。以此知《太玄》都不济事。”事实上,两汉之际的扬雄(公元前53-公元18年)所发明的的太玄数已经完全符合三进制的记数方法(后世称之为“加三倍法”),程颢认为邵雍的“加一倍法”比扬雄的太玄数更高明。当时邵雍听到程颢的话之后惊抚其背说:“大哥,你恁聪明!”邵雍要向二程兄弟传授“加一倍法”,二程兄弟并没有领情接受。程颢说:“待要传与某兄弟,某兄弟那得工夫!要学须是二十年功夫。”(以上参见《二程外书》卷十二)当时二程专于义理之学,不屑于研究“象数小术”。

邵雍的“加一倍法”受到后来的朱熹的重视,他说:“自有《易》以来,只有康节说一个物事如此齐整。”(《朱子语类》卷一○○)在朱熹那里,“加一倍法”又被称作“加一位法”。而“加一倍法”的要点就在于,加一位,即加一倍。按照邵雍“加一倍法”的原理,每增加一个爻位(实即数位),二进制数表中所包含的自然数的数目便会增加一倍,比如二进制六个数位包含了六十四个自然数(0-63),若增加到七个数位,那自然数的数目也便翻了一番,而包含一百二十八个自然数(0-127)。若增加到八个数位,便包含二百五十六个自然数(0-255)。而若从八个数位增加到十五个数位,那自然数的数目便翻七番,而包含三万二千七百六十八个自然数(0-32,767)。如此类推,数位越多,包含的自然数的数目也越多。而即使再多数位,其中包含的自然数的数目再多,要用二进制的记数方法写出它所包含的所有自然数,也并不困难。这也就是说,只用两个符号便可以以一种明白无误的逻辑方法(可操作、可验证的)表示任何自然数。反过来也可以说,一切自然数都可以用两个符号以逻辑的方法表示出来。这正如清代思想家王夫之所说:“使以加一画即加一倍言之,则又何不可加为七画,以倍之为一百二十八,渐加渐倍,亿万无穷,无所底止,又何不可哉?” 然而遗憾的是,王夫之又以此为“算士铢积寸垒、有放无收之小术”(《周易稗疏》卷三)。

邵雍的“加一倍法”意味着中国早在九百多年前的北宋时期,已经发明了二进制的记数方法,这是中国先哲的智慧和光荣,作为后人应该记住它,而不应该抹煞它!