作者:蒋迅
没有想到,这样的题目会是在英文的论坛上先看到。在此之前,我从来没有听说过“苏州码子”。据维基百科,“苏州码子”又称花码、草码、菁仔码、番仔码、商码,是一种传统在中国民间流行的数字,产生于中国的苏州,起源自算筹。因为苏州码子容易学习,书写便捷,一串数字能连笔写出(阿拉伯数字就不能),而且写法如同算珠,可以配合算盘使用,所以曾经广泛使用于商业中,在账簿和发票等均有使用。现在这种数字在中国大陆及台湾几近绝迹,但在港澳地区的街市、旧式茶餐厅及中药房偶而仍然可见。在1990年代之前,香港公共小型巴士普遍以此标示车资价钱,现时仍有少数路线仍以此标价。香港小学数学课程中将之称为中国古代数字[4]或中国数码,并于小学五年级教授有关用法。苏州码子曾被用在英国广播公司电视连续剧《新世纪福尔摩斯》第1季第2集《银行家之死》中的神秘符号,但是误以竖写表达(例如剧集中路边小贩的价钱牌用竖写,实际只用横写)。 其实苏州码子是明码,从一二三四五六七八九数字上,古老沿用另一套精彩的商业暗码: 旦底(一),月心(二),顺边(三),横目(四),扭丑(五), 交头(六),皂脚(七),其尾(八),丸壳(九)。
苏州码子脱胎于中国文化历史上的算筹,也是唯一还在被使用的算筹系统。花码由南宋时期从算筹分化。同算筹一样,花码是一种进十进位制计数系统。与算筹不同的是算筹通常用在数学和工程上,花码通常用在商业领域里,主要用途是速记。程大位的《算法统宗》介绍了苏州码子,称之为“暗马式”和“暗子马数”。苏州码子从明代被苏、杭一带人们采用,在民间流行了数百年后,最终被阿拉伯数字取代其地位。
下面是几个苏州码子的图片:
根据知乎,国内现在还残存着苏州码子。《神探夏洛克》里还曾靠它破案。万一哪天你碰上了,可别说不认识。
我的文字编辑器不能识别苏州码子,我也只好不多讨论。最后想针对苏州码子出一个题:写一个程序将一个正整数转成苏州码子。这道题是在codegolf.stackexchange.com上看到的,那上面已经有了用各种语言写的程序了。注意这里的“code golf”(程序高尔夫?) 是指用一行代码来完成。如果你对这样的题目感性趣,这里有许多有趣且具有挑战的题目。
联系客服