手指计数——长在身上的计算机

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

美国人阿西莫夫说过,人类最早的「计算机」是手指,英语单词「Digit」既表示「手指」又表示「整数数字」。

——孙燕群《计算机史话》

文明始于计数

文明萌芽之前,人类的祖先还没有「数」的概念。在广袤的原始森林里,他们认识这棵树,也认识那棵树,唯独没有这是从哪到哪第几棵树的概念,更没有某一范围内总共有多少棵数的概念。

等到祖先们渐渐有了计数的意识,起初也局限于很小的数。他们用身上的特定部位去表示,比如用鼻子表示1、用眼睛或耳朵表示2。直到解放前,我国还有些文化发展比较迟缓的民族最多只能数到3或10,再往后数就数不清了,只将其统称为「多」。在国外,澳大利亚、巴布亚新几内亚和巴西的一些部落也没有定义2或3以上数字的名称。

人天生是不擅长计数的,潜意识里很容易把超过3的数目归类为「多」。

这就好比,在没有有意识统计的情况下,当有一两个人说你长得好看,你会记得有那么一两个人说你好看,而当有第三、第四个人这么说时,你的印象里一定是:好多人都说我长得好看!

使用身体部位计数

然而人类终究是要与较大的数打交道的,除了每天的吃喝拉撒,祖先们渐渐需要面对「打到了多少猎物」、「部落有多少人口」这类简单的统计问题。他们开始动用身上的各种部位,也终于出现了我们的主角——手指。

每个原始部落都约定了一套内部通用的规则,据统计,单在巴布亚新几内亚就发现了至少900多种不同的肢体计数方法。其中一种是这样的,用上半身的27个部位表示数字1~27。这在我们看来,却比直接使用数字麻烦得多。

原图来自《“啊哦呜”部落和“牟尼”部落》

当然应用最广、流传最久的,还是手指和脚趾,一指/趾就是1,双手就是10,一人就是20,为此史上有诸多民族曾使用二十进制。藏文中,「人」字有20的意思;法语中,80为quatre-vingts(4个20),90为quatre-vingt-dix(4个20加10)。

法语数字单词表(图片来自网络)

手指计数

而比起脚趾,手指用起来毕竟更加方便,也更具生命力(沿用至今),这也是人类默认使用十进制计数的根本原因。

相对简单的手指计数通常用一只手指示个位,另一只手指示十位,可以直白地表示出1~99。

右手表示个位数,左手表示十位数(图片来自《计算机技术发展史(一)》P17)

左右手并用可以表示任意一个二位数(图片来自《计算机技术发展史(一)》P17)

进阶一点,可以用上手指的分节。一种理论认为,古巴比伦人用一手的12个指节表示1~12,用另一手的五指表示12的1~5倍,从而可以表示1~60。这正对应着楔形文字中数字的六十进制记载方式。

图片来自《用身体来计数》

再进阶一点,手指的弯曲、指关节的方向所形成的各种手势都可以用来表示更大的数。比较典型的例子是1494年,由意大利数学家 Luca Pacioli整理的一套手指计数法。

左侧两列为左手手势,表示190;右侧两列为右手手势,表示1009000。左右动作是对称的。(图片来自《计算机技术发展史(一)》P20)

不得不感叹人类的智慧,在无法借助外部工具的时代,光靠手指就能计数到成百上千,甚至达到百万。现在我们在生活中时常也用手指示数,但基本只会从1数到10,折回来再从11数到20,以及一些表示6、8等特殊数字的简单手势。

然而仅仅能用手指表示数字并不稀奇,现在聋哑人使用的手语除了数还能表示无比丰富的含义,欲将手指称为计算工具,起码还要实现计算功能。手指确实可以进行一些简单的计算,配合以心算口诀,不但能做加减还能做乘除,我国古代就出现过成熟的「手算」方法。明代数学家程大位在其《算法统宗》一书中详细记载了由秦晋商人发明的「一掌金」算法 1,靠右手指点左手各指关节完成计算。

图片来自《算法统宗》卷十七

是可谓算法在手,天下我有,商人出门谈生意,两手往衣袖里一藏(那时的算法可是商业机密不能轻易外泄),袖里吞金,掐指一算,出账入账都清清楚楚了。有歌谣曰:

袖里吞金妙如仙,灵指一动数目全。无价之宝学到手,不遇知音不与传。

「手算」虽然方便,但能算的数值范围毕竟有限,还需配合以复杂的心算口诀。现在一些数学老师热衷于开发面向小朋友的手指速算法,确实比纯心算要快、要可靠,用来开发智力可以,实际应用起来就捉襟见肘了。而正是手指的这种局限性,促使着人类摆脱身体部位的束缚,一步步朝着更先进的计算工具迈进。

现今的手指计数

美国手势(原图来自维基「American manual alphabet」词条)

中国手势,这个再熟悉不过了。(原图来自维基「Chinese number gestures」词条)

而最令人震惊的,是程序员专用的二进制手势……(图片来自网络)

参考文献

  • 孙燕群. 计算机史话[M]. 2003.
  • 吴为平, 严万宗. 从算盘到电脑[M]. 长沙: 湖南教育出版社, 1986.
  • 舒学. 用身体来计数[J]. 中华少年:dk少年百科, 2009(6):30-31.
  • 金贤正. “啊哦呜”部落和“牟尼”部落[M]. 海豚出版社, 2015.
  • 李全. 古人计数[J]. 小天使·二年级语数英综合, 2011(12):28.
  • B.B.鲍尔加尔斯基, 潘德松, 沈金钊. 数学简史[M]. 知识出版社, 1984.
  • 胡守仁. 计算机技术发展史(一)[M]. 长沙: 国防科技大学出版社, 2004.
  • N.A.阿波京, JI.E.梅斯特洛夫. 计算机发展史[M]. 上海: 上海科学技术出版社, 1984.
  • Wikipedia. Fingerspelling[EB/OL].
  • 程大位. 新编直指算法统宗[M]. 1592.
  • 百度百科. 一掌金[EB/OL].
  • Wikipedia. American manual alphabet[EB/OL].
  • Wikipedia. Chinese number gestures[EB/OL].
  • 每日过去. 世界各国的手指计数方式[EB/OL].

  1. 有关「一掌金」的记述最早见于明代数学家徐心鲁1573年《盘珠算法》一书,此书乃我国史上第一部珠算算法专著,只可惜仅在日本内阁文库藏有原本,国内买不到也下载不到。 ↩︎

_逸之
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用opencv python进行手检测和手指计数
weixin_26755331的博客
09-08 1480
By seeing above image now you are very excited for implement it (like me). So not wasting too much time let’s jump to the code. 通过看到上面的图像,您现在很高兴实现它(像我一样)。 因此,不要浪费太多时间,让我们跳转到代码。 OpenCV (OpenCV) OpenC...
基于OpenCV的手掌检测和手指计数
小白学视觉
09-17 2938
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达利用余弦定理使用OpenCV-Python实现手指计数与手掌检测。手检测和手指计数接下来让我们一起探...
怎样用计算机算账快,算账比计算器还快 唐山古稀老人和“一掌金
weixin_35361584的博客
06-19 655
原标题:算账比计算器还快 唐山古稀老人和“一掌金” 不用计算器,五位数的加减乘法随心计算,对于一般人不通过列竖式计算,很难一下就说出答案。可在唐山市曹妃甸区八农场小韩庄,有一位老人名叫李太明,76岁的老人有一手绝活名叫“一掌金”,五位数加减法,随口就可以说出答案,乘法也不用笔算,十几秒便可计算出来。虽然,在现代社会,人们通过机器计算更加便捷,但老人并不愿丢掉这手绝活,“老祖宗留下的东西充满智慧,有...
对电子计算机中0和1的认识,计算机为什么只需要认识0和1
weixin_36379084的博客
07-15 950
人类最早是采用结绳的方式来计数的,每计一个数就打一个绳结。不过,随着需要计的数越来越多,到了成百上千的量级,用打绳结的办法就忙不过来了。于是,人类就根据生活观察的经验,发明了新的计数规则。比如,每有10 个小石子的时候,就用1 个大石子来表示,这种“逢十进一”就是十进制。当然,古代的进制也不止一种,从八进制、十二进制到六十进制都有。因为人的手指恰好是 10 个,平时用到手的地方最多,所以我们现在普...
趣题:人的两只手十个手指头最多能数多少种数
weixin_30911809的博客
07-11 1705
复习微机原理实在无聊。。。想到了这个奇怪的问题 举几个栗子: 1)  如果十个手指每一个表示一个数【就像幼儿园老师一开始教的那样】,一个手指都不伸出表示0,伸出第一个手指表示1,第二个表示2,......,可以数出11种数(0..10) 2)  如果稍微改一下,两只手每一只表示一位,那么对于每只手,就有: 手势 表示的数字 一个手指都不伸 0 伸出...
计算机发展史-图文.pptx
11-21
计算机发展史可以追溯到我们祖先用石头或手指帮助计数的远古时代。人类最早的“计算机”是手指, “Digit” 既表示“手指”又表示“整数数字”。珠算盘是中国古代在计算工具领域的另一项发明,直到今天,它仍然是...
计算机应用基础00018.pdf
06-01
随着生产力的发展,在中国的春秋时期,出现了一种用来模拟和扩展手指运算功能的计算工具——算筹。1642年,法国人布莱兹·帕斯卡发明了用齿轮计算的机械加法器。1666年英国人莫兰发明了可以进行加减运算的机械计算器...
计算机发展史.docx
12-06
这些自然物体在原始社会中起到了计数的作用,它们是人类计算能力的原始体现。在中国,算筹的出现是一个重要的里程碑。这些细的竹、木或骨制小棍,使得人们可以在不同位置排列它们来进行复杂的计算,为后来的运筹学...
计算机应用基础-().docx
07-03
[单选、填空]随着生产力的发展,在中国的春秋时期,出现了一种用来模拟和扩展手指运算功能的计算工具——算筹。 [单选、填空]1642年,法国人布莱兹·帕斯卡发明了用齿轮计算的机械加法器。1666年英国人莫兰发明了...
计算机应用基础00018.doc
07-03
[单项选择、填空]随着生产力的发展,在中国的春秋时期,出现了一种用来模拟和扩展 手指运算功能的计算工具——算筹。 [单项选择、填空]1642年,法国人布莱兹·帕斯卡发了然用齿轮计算的机械加法器。 1666年英国人...
Spring是什么?干什么的?怎么用?
YKorey的博客
06-09 4万+
spring是什么? 1:是一个轻量级的开源框架,是为解决企业应用开发的复杂性而创建的; 2:是一个三层架构,也为J2EE应用程序开发提供集成的框架; Web层:Spring MVC; 业务层 :Spring的IoC; 持久层 :Spring的JDBC、ORM、等持久层框架; 3:Sprin...
计算机视觉】基于Python—OpenCV的手势识别详解(一)
weixin_43654363的博客
10-17 4万+
计算机视觉】基于Python—OpenCV的手势识别详解(一)
编码的奥秘:十进制记数法
infi
11-13 1004
转自:《编码的奥秘》  第七章              语言仅仅是一种编码的想法似乎很容易被人们接受, 很多人在学生时代至少学过一种外语,因此,我们知道在英语中“ c a t”(猫)也可以被叫作 g a t o、 c h a t、 K a t z e、 K O I I I K或k a p a。            然而,数字不那么容易随文化的不同而改变。不论那种语言,也不管怎样读那些数字...
高职学生如何成为编程高手
来老师的专栏
08-31 1万+
高职学生如何成为编程高手不知不觉在高职教学7年了,这7年的教学经验使我感受颇深!高职高专学习软件的学生,很多在入学的时候都有比较大理想:我一定要成为一名编程高手!(毕业之后挣大钱!),事实上很多同学通过自己的努力,达到了预期效果。但是也有很多学生在毕业时还是踌躇满志,还在立志学习!那么我们高职学生在校学习时间比本科短1到2年,我们如何成为一名编程高手呢?下面是我从网上收集整理并针对高职
手机计数
qq_48223179的博客
09-30 260
package Abcd; import java.util.Scanner; class Mobile{ private int num; private String brand; private double amount; private double price; private double all; public Mobile() { } public Mobile(int num,String brand,double amount,double price,doub
一个木函工具桌面测试版,支持Linux & MacOS & Windows
哆啦A梦爱学习的博客
09-07 618
点击上方“码农的后花园”,选择“星标”公众号精选文章,第一时间送达“一个木函”App版是一款小巧实用的工具,功能主要包括包括:图形图像类,如OCR图片文字识别、AI图像识别、GIF合成...
pytorch简介
热门推荐
bestrivern的博客
04-21 9万+
一.Pytorch是什么?   Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于T...
人类最早计算机阿西莫夫,“人类先知”阿西莫夫50年前的2014年6大预言
weixin_33968957的博客
07-21 870
腾讯科技 汤姆 12月26日编译伊萨克·阿西莫夫(Isaac Asimov)是当代美国最著名的科幻小说家、文学评论家、美国科幻小说黄金时代的代表人物之一,并与儒勒-凡尔纳、HG-威尔斯并称为科幻历史上的三巨头。而且,小行星5020、《阿西莫夫科幻小说》杂志和两项阿西莫夫奖都是以他的名字命名。上世纪60年代,阿西莫夫曾在参加了当年的世界博览会后开始为《纽约时报》(New York Times)撰写专...
android手指个数识别项目
xianyafu的博客
12-04 913
主要思路: 1.利用照片或相机获取照片 2.对照片进行高斯处理org.opencv.imgproc.Imgproc.GaussianBlur 3.进行肤色处理private void skinExtract 4.寻找手轮廓Imgproc.findContours 5.通过矢量叉乘与点乘判断指尖 (也可以根据重心)
python opencv实现手指计数
最新发布
06-02
使用Python和OpenCV实现手指计数的过程大致分为以下几个步骤: 1. 读取视频或者摄像头数据 2. 预处理图像,包括二值化、腐蚀、膨胀等操作,使手部区域更加明显 3. 检测手部区域,可以使用肤色检测或者基于特征点的方法 4. 检测手指数量,可以通过计算手部区域的凸包、凹包等特征点数量来得到 下面是一个简单的Python OpenCV手指计数代码示例,仅供参考: ``` import cv2 import numpy as np # 创建VideoCapture对象读取视频流或者摄像头数据 cap = cv2.VideoCapture(0) while True: # 读取一帧图像 ret, frame = cap.read() # 预处理图像,使用肤色检测方法 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) lower_skin = np.array([0, 20, 70], dtype=np.uint8) upper_skin = np.array([20, 255, 255], dtype=np.uint8) mask = cv2.inRange(hsv, lower_skin, upper_skin) mask = cv2.erode(mask, None, iterations=2) mask = cv2.dilate(mask, None, iterations=2) # 寻找轮廓并绘制最大轮廓 contours, _ = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if len(contours) > 0: c = max(contours, key=cv2.contourArea) cv2.drawContours(frame, [c], -1, (0, 255, 255), 2) # 计算凸包并绘制 hull = cv2.convexHull(c) cv2.drawContours(frame, [hull], -1, (0, 0, 255), 3) # 计算凸缺陷并绘制 defects = cv2.convexityDefects(c, cv2.convexHull(c, returnPoints=False)) count = 0 for i in range(defects.shape): s, e, f, d = defects[i] start = tuple(c[s]) end = tuple(c[e]) far = tuple(c[f]) if d > 10000: count += 1 cv2.line(frame, start, end, (0, 255, 0), 2) cv2.circle(frame, far, 5, (0, 0, 255), -1) # 显示手指数量 cv2.putText(frame, "Finger Count: {}".format(count+1), (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2) # 显示图像 cv2.imshow("frame", frame) # 按下"q"键退出程序 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放资源并关闭窗口 cap.release() cv2.destroyAllWindows() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • ENIAC:第一台通用电子计算机 9610
  • 巴贝奇——现代计算机真正的鼻祖 5200
  • [MFC] 对话框右上角的红叉与[取消]按钮是绑定的 5178
  • 第一批冯·诺依曼计算机 4915
  • 祖思机——第一台二进制可编程计算机 4900

分类专栏

  • 01改变世界:计算机发展史趣谈 37篇
  • 01改变世界:计算机原理趣谈 2篇
  • 01改变世界(第一版) 4篇
  • DO IT 6篇
  • DO IT技术干货 5篇
  • 程序小库 2篇
  • MFC 20篇
  • C/C++ 27篇
  • 教程 4篇
  • 笔记 8篇
  • IDE 5篇
  • Java 1篇
  • 系统级 4篇
  • 网络 1篇
  • CMD 1篇

最新评论

  • 帕斯卡算术机——数学天才的十余年匠心

    weixin_69932765: 那做减法的时候看不到下面的数字怎么知道加的是什么呢

  • 百万富翁——真正的四则计算器

    melissa_ai: 看书的时候没看懂乘数为2时的举例,十阶个阶,看这篇终于看懂了。表情包要是书上的图配有扫码动画就更好了。

  • [C++] new带括号和不带括号

    马达加斯加的�: 可是我的结果都是0为什么

  • ENIAC:第一台通用电子计算机

    每天都在被开除的边缘试探: 写的真好

  • 石子计数——解放双手的第一步

    我是王大锤: 河图洛书感觉介绍的太少了,没看懂

大家在看

  • python 66 个冷知识 0716 607
  • 题解:[CSP-J 2022] 逻辑表达式(洛谷P8815)
  • 高级java每日一道面试题-2024年7月20日
  • java笔记day5 600
  • 土工格栅市场崛起:中国基础设施建设的新动力!

最新文章

  • 你好,《01改变世界》
  • Rust 各版源码及工具链下载地址
  • MCJIT 设计与实现
2022年1篇
2020年13篇
2019年31篇
2018年15篇
2017年6篇
2016年6篇
2015年22篇
2014年44篇
2013年5篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码民治网站优化按天计费大运企业网站制作吉祥百度竞价平湖网站设计深圳网站推广工具吉祥英文网站建设松岗网站搭建大芬网站搜索优化爱联高端网站设计南澳网站制作观澜营销网站南山百度标王石岩阿里店铺托管吉祥优化盐田百度网站优化排名东莞模板网站建设广州网站优化排名永湖网站建设设计横岗营销网站同乐网站排名优化丹竹头网站改版大鹏seo排名平湖百姓网标王荷坳营销型网站建设东莞百度标王坑梓设计公司网站大芬百度爱采购大浪网站优化按天计费塘坑外贸网站制作西乡模板推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化