五 初期的天文学和数学
天文学
进入阶级社会以后,有了专司天文的人员,才可能把过去人们掌握的分散、零星的天文历法知识进行整理,并从事较系统的天象观测和计算,使天文、历法得到较大的发展,形成初期的天文学。商周时期的天文工作往往是由巫、祝、史、卜等宗教人员或记述历史的专业人员兼任的。奴隶主贵族为了巩固自己的统治,竭力鼓吹宣扬“天命观”。因此,包括占星术在内的各种占卜巫术在那时十分兴盛。殷墟出土的甲骨片,都是占卜用的,其中有不少天象记事,正是占星术发达的证明。可以说,科学的天文学和反科学的占星术是作为对立统一体一起发展着的,这就使古代的天文学不能不带有迷信的色彩。
《夏小正》中所描述的天象,可能反映了夏代的一些天文历法知识。其中有一年内各月里的早晨或黄昏时北斗斗柄的指向和若干恒星的见、伏或中天等的记载,而且还把这些天象同相应的物候糅合在一起,构成了物候历与天文历的结合体。后世的《月令》等都是承袭《夏小正》的体例而加以发展的。人们观测天象以确定季节的探索的重要成果,还见于《尚书·尧典》关于“四仲中星”的记载:“日中星鸟,以殷仲春;日永星火,以正仲夏,宵中星虚,以殷仲秋;日短星昴,以正仲冬。”这就是用四组恒星黄昏时在正南方天空的出现来定季节的方法。当黄昏时见到鸟星(星宿一)升到中天,就是仲春,这时昼夜长度相等;当大火(心宿二)升到正南方天空就是仲夏,这时白昼时间最长;当虚宿一出现于中天时就是仲秋,此时昼夜长度又相等;而当昴星团出现在中天时就是仲冬,白昼时间最短。所谓仲春、仲夏、仲秋、仲冬,即春分、夏至、秋分、冬至四个节气。据研究,“四仲中星”最晚是商末周初时的实际天象,也可以说,最迟至商末周初人们已经取得了这项观象授时的重要成果。
夏代已有天干纪日法,即用甲、乙、丙、丁、戊、己、庚、辛、壬、癸十个天干周而复始地来记日。夏代后期几个帝王名孔甲、胤甲、履癸就是有力的证明。这时用十进位的天干来记日,并有了“旬”的概念。十天为一旬,这个单位直到今天还在使用。
商代在夏代天干记日的基础上进一步使用干支记日法,把甲、乙、丙、丁……十天干和子、丑、寅、卯……十二地支相配合,组成甲子、乙丑、丙寅、丁卯等六十干支。用它来记日,六十日一个循环。武乙时的一块牛胛骨上刻着完整的六十甲子,两个月合计为60天,很可能是当时的日历。有一组胛骨卜辞算出来两个月共有59天,那么这两个月必须是分别为30天、29天,也即商代已有大、小月之分。甲骨卜辞中有一年的十二月名和多次的“十三月”记载。说明这时已经用大小月和连大月来调整朔望,用置闰来调整朔望月和回归年的长度,这正是阴阳合历的最大特点。这种阴阳合历在我国一直沿用了好几千年,形成了具有我国特色的历日制度体系。商代的置闰法,一般都置于年终,就是上述的所谓十三月。也有人认为,商代晚期已出现了年中置闰法,关于这一点,在学术界还有争议。
周代的历法在商代基础上又有所发展。这时已经发明了用圭表测影的方法,确定冬至(一年中正午日影最长的日子)和夏至(正午日影最短之日)等节气。如果再配合以一定的计算,就可使回归年长度的测量达到一定的准确度。周代历法还有一个大的进步就是能定出朔日。《诗经·小雅·十月之交》:“十月之交,朔日辛卯,日有食之,亦孔之丑……”这是我国古书中“朔日”两字的最早出现,也是我国明确记载日期(周幽王六年十月初一日)的最早一次日食。这反映了当时我国历法已达到相当的水平。
商代把一日分为若干段落,并给予特定的称呼,如分为“旦”——清晨、“夕”——晚上、“明”——黎明、“中日”——中午、“昃日”——下午、“昏”——黄昏,同时还用“大采”表示“朝”,“小采”表示“夕”。周代已用十二地支来计时,把一天分为十二时辰,则更定量化了。至于测时的仪器,可能在周以前已发明了计时工具——漏壶。《周礼·夏官》:“挈壶氏掌挈壶……以水火守之,分以日夜。”这种测时仪器不管阴雨、夜晚都可以使用。
对天象进行观测,商周时代十分重视,有许多天象记录远比世界其他地区为早。如甲骨文中就有五次日食记录,一块公元前13世纪的甲骨卜辞的意思说癸酉日占,黄昏有日食,是不吉利的吗?月食记录在甲骨文中也有不少,公元前14世纪至公元前12世纪的月食记录如壬申这天晚上有月食等。甲骨卜辞中还有一些新星记载,如七日(己巳)黄昏有一颗新星接近“大火”(心宿二),又如辛未日新星消失了。这是世界上最早的新星记录。
图2-12 商代武丁时六十甲子甲骨卜辞
周代天象观测有不少新发现。二十八宿是春秋时候确定下来的。二十八宿就是把天球黄赤道带附近的恒星分为二十八组,其名称是角、亢、氏、房、心、尾、箕、斗、牛、女、虚、危、室、壁、奎、娄、胃、昴、毕、觜、参、井、鬼、柳、星、张、翼、轸。每一宿中取一颗星作为这个宿的量度标志,称为该宿的距星。这样就建立起了一个便于描述某一天象发生位置的较准确的参考系统。这个系统的确立经历了很长的历史过程。在《诗经》中,二十八宿中的名字已见的有火(心)、箕、斗、定(室、壁)、昴、毕、参、牛、女等,甚至已有银河(天汉)的记载,说明那时对于恒星有了较多的认识。《诗经》许多篇中清楚地表述了恒星的出没所反映的季节变化与社会生产、人民生活的关系,如“定之方中,作于楚宫”;“七月流火,九月授衣”。又如“毕”是带柄的捕兔用的小网,“箕”是簸扬谷子的生产工具,“斗”是挹酒用的勺,还有大家熟知的“牛郎星”与“织女星”的形象描述,反映了古代对于恒星的命名,最初都是用生产工具、生活用品和劳动人民的形象来考虑的。对于行星,人们也有所认识。在殷墟甲骨文中有“岁”的记载,指的就是岁星——木星。《诗经》里的“明星”、“启明”、“长庚”指的都是金星。
数学
奴隶制社会时期,农业、手工业的进一步发展,商品交换的扩大以及防治洪水和开挖沟洫、建筑城市和宫殿、测量地亩、编制适合农时的历法等等,都需要数学知识和计算技能。因而数学知识在这一时期获得较大的进步。
商代的陶文和甲骨卜辞中有很多的记数文字。甲骨文中一、二、三、四等数字是用横画记的,陶文则是竖画记的。商人同后世人一样,用一、二、三、四、五、六、七、八、九、十、百、千、万十三个单字记十万以内的任何自然数,只不过记数文字的形体和后来的不一样而已。下列是甲骨文中的十三个记数单字。
十、百、千、万的倍数在甲骨文中是用合文写的,示例如下。
图2-13 甲骨文中的数字
甲骨文中现已发现的最大数字是三万——,复位数已记到四位,如二千六百五十六——。商人记数有时在百位数、十位数和个位数之间添一个“”字或“”字,例如五十六——“五十六”。周代记数法和商代相同,只是有的字形和甲骨文不同,四写作,或作,十写作。又如《盂鼎》铭文:“人鬲自骏至于庶人六百五十九夫,”数字659写作“”,其中的五十合文是上五下十,而甲骨文写法是上十下五。从以上所有示例来看,当时记数法是遵循十进制的。这种记数法含有明显的位值制意义,我们只要把千、百、十和“”或“”的字样去掉,便和位值制记数法基本一样了。这种记数法的语言既简洁又明了。英国的李约瑟教授对我国商代的记数法予以很高评价,他说:“总的说来,商代的数字系统是比古巴比伦和古埃及同一时代的字体更为先进、更为科学的。”还有一些占卜的甲骨文中反映出商代已有奇数、偶数和倍数的概念,说明当时人们已掌握了初步的运算技能。
传说夏禹治水时“左准绳,右规矩”。说明了规矩、准绳作为测量的工具应是由来已久。出土文物中的青铜器、车辆以及已发掘的古代建筑遗址都表明规、矩、准、绳在奴隶社会时期已被应用于生产活动的各个方面。通过春秋时期筑城的例子,就可看出那时的测量技术和数学知识水平已比较高了。公元前598年,楚国的令尹筑沂城;公元前510年,晋国的士弥牟营筑成周城,都不仅测量计算了城墙的长、宽、高以及沟洫在内的土石方量,连需要用多少人工和材料、各地区劳动力的往返里程和要吃的粮食数量都计算好了。因为工程计划精确周到,各地承担任务明确,各负其责,进度快,在很短时间内就完成了筑城的任务。这些测量技术和数学知识,当然是从商、周时积累与发展而来的。
“算筹”是一种计算用的小竹棍,也有用木、骨的,以后还有用铁等金属材料制作的。用算筹进行计算,叫做“筹算”。算筹和筹算的发明,对我国古代数学的发展影响很大。它究竟起源于何时,由于缺乏具体确实的资料,现在还无法肯定。西周时期,数学是当时“士”阶层受教育所必修的“六艺”(礼、乐、射、御、书、数)之一。这时还出现了专职会计,在政府机构中的叫“司会”,在军队中的叫“法算”, “主会计三军营壁,粮食,财用出入”。此外,还有世代相传专门掌管天文历法和掌握数学知识的所谓“畴人”。“九九”乘法口诀(从九九八十一开始,到一一如一为止)在春秋早期就已经成为普通常识。根据这些来看,算筹记数和简单的四则运算,很可能在西周或更早的一些时候便已产生了。关于算筹记数详见本书第三章。