☞ 欢迎来到神奇的01世界 ☜

说到算筹,想必很少有人听闻。虽然史上国外(日本、印度、巴基斯坦等)也有过这块腰椎间盘,但还是要数中国的最突出。

图片来自网络

先感性认识一下

算筹最早出现于商周,在算盘被发明之前,堪称世界上最先进的计算工具。你可能没听说过,但「运筹帷幄」、「觥筹交错」这些朗朗上口的成语皆出于此。而这所谓先进的计算工具,竟是一根根小小的棍子(长约十几厘米)。棍子的材料多样,竹子、木头、象牙、兽骨、金属、玉器应有尽有,凡能削成棍状的东西皆可为之。当然我们现今所能看到的算筹,多是耐腐蚀材质的。

战国骨筹(图片来自http://www.cnr.cn/sxpd/jd/20170720/t20170720_523860563.shtml#3)
战国铜筹(图片来自http://bbs.chcoin.com/show-6865738.html?authorid=190510)
西汉铅筹(图片来自http://blog.sina.com.cn/s/blog_4551bbe8010105vv.html)
西汉牙筹(截图来自《如果国宝会说话 第二季》第20集)

像我们随身携带手机一样,懂数学的古人通常会随身佩戴丝布制成的算袋,里头放着一把算筹。走在路上碰到欠债不还的,一言不合就能掏出来跟他算账……

图片来自网络

传说秦始皇也经常佩带丝质的算袋。一次东游,他把算袋扔进了海里,变化成乌贼,因此乌贼也有算袋鱼之称。

到了唐朝,更有法律规定文武百官必须佩带算袋。可见在彼时,算筹不单单是一种计算工具,更是文化和身份的象征。

算筹示数

史上第一本记述算筹的专著是一千五百年前的《孙子算经》,作者不详(跟孙武孙膑没有半毛钱关系)。

算筹用红棍表示正数,黑棍表示负数,有纵横两种「布棍」模式,纵式用竖棍表示1、横棍表示5,横式反之:

1 2 3 4 5 6 7 8 9
纵式
横式
-1 -2 -3 -4 -5 -6 -7 -8 -9
纵式
横式

0比较特殊,用留空表示。

对于不同的数位,纵式、横式是相间使用的,《孙子算经》如是描述:

凡算之法,先识其位。一纵十横,百立千僵,千十相望,万百相当。

个位上的数字用纵式,十位上的用横式,百位上再用纵式,千位再用横式,以此类推。这样奇怪的做法是考虑到0的存在,比如2018:

2 0 1 8
横式 纵式 横式 纵式

画了表格,才凸显出0的空位。但在实际使用中,尤其在书写(誊抄算法)时,空位很容易被忽略,有了纵横交错的做法,即使没有空位,2和1挨在一起,也不会把2018当成218。

当然这也存在一个问题,比如20018就有被当成218的可能。人们会在「布筹」的计算板上(counting board)划好棋盘一样的表格,或者用围棋子来表示0,以避免这个问题。在书写方面,则引入了圆圈符号——〇。即便如此,纵横交错的形式还是作为经典被始终沿用。

筹算

使用算筹的方法叫筹算,两个字颠倒一下,好比牙刷的使用叫刷牙,不得不感慨中文的博大精深。由于人在阅读时会无意识地忽略文字顺序,所以下文所提「算筹」、「筹算」还请细细分清。

筹算的能力强大,除了最基本的加减乘除,还能进行乘方和开方,纳尼!乘方?开方?!是的,你没有看错,而且远不止这些,筹算甚至能解线性方程(组)、求最大公约数和最小公倍数、解同余式组、造高阶查分表等等,其所用到的负数、小数、分数等较为抽象的数字概念,比西方早出一百年甚至好几百年。

公元480年左右,南北朝数学家祖冲之使用筹算将圆周率精确到小数点后7位(3.1415926~3.1415927之间),这一精度领先世界近千年,直到15世纪初才被打破。这一计算涉及包括开方在内的130次运算,放到今天,如果不用电子计算设备给你一沓草稿纸,恐怕也很难算准。

除了圆周率,著名的秦九韶算法、剩余定理等高超的古代数学成就,都是靠筹算得到的。

其实算筹本身仅仅提供了一种用棍子表示数字的「书写」形式,能做如此复杂的计算,得益于古人一代代智慧积累下来的算法口诀,包括沿用至今的九九乘法表。计算过程和现在的「列竖式」十分相似:

6561 ÷ 9(图片来自维基「Sunzi Suanjing」词条,请无视它为什么不是红色……)

也许你会觉得,筹算虽然强大,但小木棍的摆放好像并不方便。确实需要进行许多机械式的重复步骤,但可谓孰能生巧,厉害的筹算者有着相当可观的计算速度,沈括在《梦溪笔谈》中描述某坏男人淮南人:

运筹如飞,人眼不能逐。

不知是否有夸张的成分,但参考现在娴熟的算盘手,基本也能想象其景。

算筹的不足

筹算虽然强大,然而作为一种质朴的计算工具,终有捉襟见肘的时候。同现今计算机软硬件的相互促进一样,诸多算法为适应筹算模式而生,而算筹本身却渐渐对复杂的算法力不从心——譬如重因法、身外加减法、求一法,听都没听说过,靠一堆小棍棍已经难以应对。加之,筹算时所用算筹数量庞大,表示单个数就可能用到5根,数字越多越繁乱,三国时期魏国人管辂的《管氏地理指蒙》一书甚至以筹喻乱:

形如投算,忧愁紊乱。

而且起初的算筹长约14厘米,摆个6就要占200平方厘米,可以想象,做稍微复杂一点的运算时得放多大一块面积。即使到宋元间改良至1~3寸(3~10cm),面对大计算量的问题依然不好使。宋代马永卿《懒真子》一书就有言:

卜者出算子约百余,布地上,几长丈余。

解道数学题要铺满整个客厅,还得满地爬,不仅是脑力活,更是体力活,搞不好还容易闪着腰啊……

算筹,终被算盘取代。

苏州码子

苏州码子,也叫草码,花码、菁仔码、番仔码、商码,是我国在阿拉伯数字传来之前广泛使用的一种数字形式,是唯一一种现存的书面算筹变种,在港澳街市、旧式餐厅、中药房仍有一点碰到的小概率。

1 2 3 4 5 6 7 8 9

你们见过吗?我是可惜没有见过。

有了这条冷知识,以后出门一定得好好留意,指不定走进哪家餐馆,看到的价目表是酱紫的:

图片来自维基「Suzhou numerals」词条

正当小伙伴们众脸懵逼之时,你一顿潇洒解读,甭提多有面子!

参考文献

  • 孙燕群. 计算机史话[M]. 青岛: 中国海洋大学出版社, 2003.
  • N.A.阿波京, JI.E.梅斯特洛夫. 计算机发展史[M]. 上海: 上海科学技术出版社, 1984.
  • 刘博. 计算工具发展研究[D]. 辽宁师范大学, 2015.
  • 吴为平, 严万宗. 从算盘到电脑[M]. 长沙: 湖南教育出版社, 1986.
  • 中央广播电视总台, 国家文物局. 如果国宝会说话 第二季[EB/OL].
  • 陈厚云, 王行刚. 计算机发展简史[M]. 北京: 科学出版社, 1985.
  • Wikipedia. Counting rods[EB/OL].
  • 佚名. 孙子算经[M].
  • 逸之. 01改变世界:没有计算器的日子怎么过——手动时期的计算工具[EB/OL].
  • Wikipedia. Sunzi Suanjing[EB/OL].
  • Wikipedia. Suzhou numerals[EB/OL].
  • 百度百科. 苏州码子[EB/OL].

运筹帷幄——我国古代的高超算术相关推荐

  1. 数术记遗——盘点我国古代那些失传了的计算神器

    ☞ 欢迎来到神奇的01世界 ☜ 引言 <数术记遗>是我国最早记载珠算的古籍,为汉代数学家徐岳撰写,由北周(南北朝时期)数学家甄鸾注解[1].书中记录了14种计算方法,分别为积算.太一.两仪 ...

  2. 【C++】公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?请设计一个“高效”的算法求解。

    题目分析 公元前五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?请设计一 ...

  3. 我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下: 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?

    有以下这样的问题 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题,该问题叙述如下: 鸡翁一,值钱五:鸡母一,值钱三:鸡雏三,值钱一:百钱买百鸡,则 ...

  4. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

    需求: 我国古代数学家张丘建在<算经>一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一. 百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 思路: 1:第1层循环,用于表示鸡翁的范围, ...

  5. 我国古代的度量衡和音律的关系

    玉质黄钟律管:海昏侯墓惊现汉代 律.度.量.衡的基准器 王金中 核心提示:我国古代把音律.尺度.容量.权衡,统称为律.度.量.衡,这是人们对于音乐以及物体的长度.体积和重量的测量与规范. <汉书 ...

  6. 干支记年法 在我国古代和近代,一直采用干支法纪年。它采用10天干和12地支配合,一个循环周期为60年。

    /* 干支记年法在我国古代和近代,一直采用干支法纪年.它采用10天干和12地支配合,一个循环周期为60年.10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸12地支是:子,丑,寅,卯,辰,巳,午,未, ...

  7. java的百钱百鸡,来自我国古代数学家张丘建在《算经》中一道题

    /我国古代数学家张丘建在<算经>中出了一道"百钱买百鸡"的问题,题意是这样的, 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡. 现在用100文钱买1 ...

  8. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

    我国古代数学家张丘建在<算经>一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 第一种: #include <stdio.h&g ...

  9. 圆周率 我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。

    /** 圆周率我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取得过辉煌战绩.有了计算机,圆周率的计算变得十分容易了.如今,人们创造了上百种方法求π的 ...

  10. 我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题(java)

    我国古代数学家张邱建在<算经>中出了一道"百钱买百鸡"的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡.现在用100文钱买100只 ...

最新文章

  1. Oracle什么时候需要Commit?
  2. python的类的super()
  3. javascript创建多行字符串的方法(转)
  4. Windows 窗设计时结构
  5. 线下沙龙 × 上海 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习
  6. linux下FTP服务搭建(1)
  7. linux脚本编程(shell)浅介 (转载)
  8. matlab 小括号
  9. leetcode15 三数之和
  10. 机器学习基础算法20-回归曲线拟合
  11. spring boot 设置时区
  12. 基于chrome内核的微软Edge浏览器~
  13. 计算机专业职业规划范文800字,计算机专业学生职业生涯规划书
  14. 大数据:酒店业的慧眼
  15. Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)
  16. 解决“文件或目录损坏且无法读取”的问题
  17. mysql resource_MySQL - Resource temporarily unavailable问题处理
  18. java简单识别闰年和平年问题
  19. 百度网盘下载资源太慢,教你一招,速度直接提升到10MB/s
  20. 大学MOOC现代礼仪试题用哪个搜题软件好?里面的题库难吗?

热门文章

  1. Python 简单的爬虫爬取网页框架(爬取网页框架+实例)
  2. UOJ#449. 【集训队作业2018】喂鸽子(期望dp)
  3. 用计算机sp画笑脸,Microsoft Office Visio绘画圆形笑脸的相关操作步骤
  4. QQ占用F2快捷键问题
  5. android wear 2.0 表盘开发,android wear手表开发如何获取所有的表盘(动态)以及切换表盘...
  6. 08年计算机组成原理自考试卷,2008年04月自学考试02318《计算机组成原理》试题...
  7. mce: [Hardware Error]: Machine check events logged
  8. GaRy-Liang的linux成长日记12-算术预算与测试
  9. 音乐在计算机中的应用,计算机音乐技术在音乐教育中的应用
  10. springboot starter自定义实现公共模块