运筹帷幄——我国古代的高超算术
☞ 欢迎来到神奇的01世界 ☜
说到算筹,想必很少有人听闻。虽然史上国外(日本、印度、巴基斯坦等)也有过这块腰椎间盘,但还是要数中国的最突出。
先感性认识一下
算筹最早出现于商周,在算盘被发明之前,堪称世界上最先进的计算工具。你可能没听说过,但「运筹帷幄」、「觥筹交错」这些朗朗上口的成语皆出于此。而这所谓先进的计算工具,竟是一根根小小的棍子(长约十几厘米)。棍子的材料多样,竹子、木头、象牙、兽骨、金属、玉器应有尽有,凡能削成棍状的东西皆可为之。当然我们现今所能看到的算筹,多是耐腐蚀材质的。
像我们随身携带手机一样,懂数学的古人通常会随身佩戴丝布制成的算袋,里头放着一把算筹。走在路上碰到欠债不还的,一言不合就能掏出来跟他算账……
传说秦始皇也经常佩带丝质的算袋。一次东游,他把算袋扔进了海里,变化成乌贼,因此乌贼也有算袋鱼之称。
到了唐朝,更有法律规定文武百官必须佩带算袋。可见在彼时,算筹不单单是一种计算工具,更是文化和身份的象征。
算筹示数
史上第一本记述算筹的专著是一千五百年前的《孙子算经》,作者不详(跟孙武孙膑没有半毛钱关系)。
算筹用红棍表示正数,黑棍表示负数,有纵横两种「布棍」模式,纵式用竖棍表示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次运算,放到今天,如果不用电子计算设备给你一沓草稿纸,恐怕也很难算准。
除了圆周率,著名的秦九韶算法、剩余定理等高超的古代数学成就,都是靠筹算得到的。
其实算筹本身仅仅提供了一种用棍子表示数字的「书写」形式,能做如此复杂的计算,得益于古人一代代智慧积累下来的算法口诀,包括沿用至今的九九乘法表。计算过程和现在的「列竖式」十分相似:
也许你会觉得,筹算虽然强大,但小木棍的摆放好像并不方便。确实需要进行许多机械式的重复步骤,但可谓孰能生巧,厉害的筹算者有着相当可观的计算速度,沈括在《梦溪笔谈》中描述某坏男人淮南人:
运筹如飞,人眼不能逐。
不知是否有夸张的成分,但参考现在娴熟的算盘手,基本也能想象其景。
算筹的不足
筹算虽然强大,然而作为一种质朴的计算工具,终有捉襟见肘的时候。同现今计算机软硬件的相互促进一样,诸多算法为适应筹算模式而生,而算筹本身却渐渐对复杂的算法力不从心——譬如重因法、身外加减法、求一法,听都没听说过,靠一堆小棍棍已经难以应对。加之,筹算时所用算筹数量庞大,表示单个数就可能用到5根,数字越多越繁乱,三国时期魏国人管辂的《管氏地理指蒙》一书甚至以筹喻乱:
形如投算,忧愁紊乱。
而且起初的算筹长约14厘米,摆个6就要占200平方厘米,可以想象,做稍微复杂一点的运算时得放多大一块面积。即使到宋元间改良至1~3
寸(3~10cm
),面对大计算量的问题依然不好使。宋代马永卿《懒真子》一书就有言:
卜者出算子约百余,布地上,几长丈余。
解道数学题要铺满整个客厅,还得满地爬,不仅是脑力活,更是体力活,搞不好还容易闪着腰啊……
算筹,终被算盘取代。
苏州码子
苏州码子,也叫草码,花码、菁仔码、番仔码、商码,是我国在阿拉伯数字传来之前广泛使用的一种数字形式,是唯一一种现存的书面算筹变种,在港澳街市、旧式餐厅、中药房仍有一点碰到的小概率。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|
〡 | 〢 | 〣 | 〤 | 〥 | 〦 | 〧 | 〨 | 〩 |
你们见过吗?我是可惜没有见过。
有了这条冷知识,以后出门一定得好好留意,指不定走进哪家餐馆,看到的价目表是酱紫的:
正当小伙伴们众脸懵逼之时,你一顿潇洒解读,甭提多有面子!
参考文献
- 孙燕群. 计算机史话[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].
运筹帷幄——我国古代的高超算术相关推荐
- 数术记遗——盘点我国古代那些失传了的计算神器
☞ 欢迎来到神奇的01世界 ☜ 引言 <数术记遗>是我国最早记载珠算的古籍,为汉代数学家徐岳撰写,由北周(南北朝时期)数学家甄鸾注解[1].书中记录了14种计算方法,分别为积算.太一.两仪 ...
- 【C++】公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?请设计一个“高效”的算法求解。
题目分析 公元前五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?请设计一 ...
- 我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下: 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
有以下这样的问题 我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题,该问题叙述如下: 鸡翁一,值钱五:鸡母一,值钱三:鸡雏三,值钱一:百钱买百鸡,则 ...
- 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
需求: 我国古代数学家张丘建在<算经>一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一. 百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 思路: 1:第1层循环,用于表示鸡翁的范围, ...
- 我国古代的度量衡和音律的关系
玉质黄钟律管:海昏侯墓惊现汉代 律.度.量.衡的基准器 王金中 核心提示:我国古代把音律.尺度.容量.权衡,统称为律.度.量.衡,这是人们对于音乐以及物体的长度.体积和重量的测量与规范. <汉书 ...
- 干支记年法 在我国古代和近代,一直采用干支法纪年。它采用10天干和12地支配合,一个循环周期为60年。
/* 干支记年法在我国古代和近代,一直采用干支法纪年.它采用10天干和12地支配合,一个循环周期为60年.10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸12地支是:子,丑,寅,卯,辰,巳,午,未, ...
- java的百钱百鸡,来自我国古代数学家张丘建在《算经》中一道题
/我国古代数学家张丘建在<算经>中出了一道"百钱买百鸡"的问题,题意是这样的, 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡. 现在用100文钱买1 ...
- 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
我国古代数学家张丘建在<算经>一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 第一种: #include <stdio.h&g ...
- 圆周率 我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。
/** 圆周率我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取得过辉煌战绩.有了计算机,圆周率的计算变得十分容易了.如今,人们创造了上百种方法求π的 ...
- 我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题(java)
我国古代数学家张邱建在<算经>中出了一道"百钱买百鸡"的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡.现在用100文钱买100只 ...
最新文章
- Oracle什么时候需要Commit?
- python的类的super()
- javascript创建多行字符串的方法(转)
- Windows 窗设计时结构
- 线下沙龙 × 上海 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习
- linux下FTP服务搭建(1)
- linux脚本编程(shell)浅介 (转载)
- matlab 小括号
- leetcode15 三数之和
- 机器学习基础算法20-回归曲线拟合
- spring boot 设置时区
- 基于chrome内核的微软Edge浏览器~
- 计算机专业职业规划范文800字,计算机专业学生职业生涯规划书
- 大数据:酒店业的慧眼
- Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)
- 解决“文件或目录损坏且无法读取”的问题
- mysql resource_MySQL - Resource temporarily unavailable问题处理
- java简单识别闰年和平年问题
- 百度网盘下载资源太慢,教你一招,速度直接提升到10MB/s
- 大学MOOC现代礼仪试题用哪个搜题软件好?里面的题库难吗?
热门文章
- Python 简单的爬虫爬取网页框架(爬取网页框架+实例)
- UOJ#449. 【集训队作业2018】喂鸽子(期望dp)
- 用计算机sp画笑脸,Microsoft Office Visio绘画圆形笑脸的相关操作步骤
- QQ占用F2快捷键问题
- android wear 2.0 表盘开发,android wear手表开发如何获取所有的表盘(动态)以及切换表盘...
- 08年计算机组成原理自考试卷,2008年04月自学考试02318《计算机组成原理》试题...
- mce: [Hardware Error]: Machine check events logged
- GaRy-Liang的linux成长日记12-算术预算与测试
- 音乐在计算机中的应用,计算机音乐技术在音乐教育中的应用
- springboot starter自定义实现公共模块