之前有篇文章简单地介绍了Trachtenberg系统的乘法计算方法,地址在这里。针对一些特定的数字,Trachtenberg还发展出了更快的计算方法。

先来介绍乘数为11的速算方法。它的计算规则我们可称之为“邻居法则”:

从右至左,把每一位数和其右侧相邻位置的数字相加,取其个位。若所得值大于9,则将其十位则带到下一位计算(这个进位最多也只有1)。

所以以后碰到和11相乘,直接写结果就成了,举个栗子:

比如633 x 11:

第1位:右侧没数字,所以直接记作3;这里衍生出一条规则,所求值的第1位等于被乘数的第1位。

第2位:3 + 3 = 6

第3位: 6 + 3 = 9

第4位:左侧没数字了,计作0,so,0 + 6 = 6

计算的时候,也可以习惯性的也在被乘数前加个0,这个看起来更顺眼:

上面这个例子相邻两数的和没有超过9的,所以我决定再来个栗子,计算1754 x 11。当相邻两数的和大于9时,我们在写结果的时候,可以顺手在前面用一个小点标记一下,如:

第3位:7 + 5 = 12,这里的记作“.2”(相当于12), 所以要第4位就是:1 + 7 + 1 = 9。

怎么样?够简单吧?

12的乘法规则和11一样简单:

把被乘数的每一位乘2后再加上右邻那位的值,取其个位。若所得值大于9,则将其十位则带到下一位计算。

直接来看栗子:413 x 12

第1位(右起,下同):3 x 2 + 0 = 6. 3的右侧没数值,直接乘2即可。为方便计算,我们在被乘数的前面补个零,这样对于初学者来说,最后一位的计算不至于被轻易忽略。老手的话,直接脑补即可,以后对于前面补0的操作,不再做专门的说明。

第2位:1 x 2 + 3 = 5

第3位:4 x 2 + 1 = 9

第4位:0 x 2 + 4 = 4

怎么样?还是看到数字直接写结果,比传统的计算简单多了吧?

照例要解决“乘2加邻居”后带来的进位问题。由于这项操作最大值只有27(9 x 2 + 9),所以进位最大是2。

再来个栗子:63247 x 12

第1位:7 x 2 + 0 = 14,留下4,将1进位。还记得我们上一节讲过的前面标个小点来表示有进位的做法么?

第2位:4 x 2 + 7 = 15 + 1 = 16。留6,将1进位。

第3位:2 x 2 + 4 = 8 + 1 = 9

第4位:3 x 2 + 2 = 8

第5位:6 x 2 + 3 = 15。留5,将1进位。

第6位:0 x 2 + 6 = 6 + 1 = 7。注意此时所得的值如果大于9,则直接将进位写到下1位。

接下来我们讲5、6、7这三个数的乘法。

如果你有这本书,请翻到第28页。

先来讲6。擦,为什么要先讲6?请往下看。

6的乘法规则有两条,先讲第一条:

把被乘数的每一位加上右侧邻位的一半,保留个位,若所得值大于9,则将其十位则带到下一位计算。

这个“右侧邻位的一半”的取半操作,准确的说法是“取半求整”,就是碰到1、3、5、7、9这些奇数的时候,取其一半的整数部分。比如5的一半是2.5,我们只取2,其它依此类推。

上栗子吧:计算 622084 x 6

第1位:4 + 0 / 2 = 4

第2位:8 + 4 / 2 = 10, 取0,将1进位。

第3位:0 + 1  + 8 / 2 = 5

第4位:2 + 0 / 2 = 2

第5位:2 + 2 / 2 = 3

第6位:6 + 2 / 2 = 7

第7位:0 + 6 / 2 = 3

然而,这并不是乘6的全部规则,完整的规则是:

把被乘数的每一位加上右侧邻位的一半,如果这个数是奇数,那要先加5. 所得值保留个位。若所得值大于9,则将其十位则带到下一位计算。

直接上栗子:计算 443052 x 6

第1位:右侧没数字了,所以直接得2

第2位:注意这一位是5,要先加5,再加右侧的一半,5 + 5 + 2 / 2 = 11, 保留1, 将十位上的1进位

第3位:0  + 1 + 5 / 2 = 3。注意5 / 2的取半求整操作。另外,对有进位的情况,建议养成先加进位的习惯,如在本例中看到0,心里直接说“1”。

第4位:3是奇数,所以要先加5:3 + 5 + 0  / 2 = 8

第5位:4 + 3 / 2 = 5. 注意,在练习时要养成一个良好的习惯,不要去想“3的一半是1,4加1等于5”,做取半操作应该直接报出结果。比较理想的状况是心里想“4,5”,在刚开始练习的阶段,也可以想“4,1,5”。

第6位:4 + 4 / 2 = 6

第7位:0  + 4 / 2 = 2

看到这里,或许有童鞋会问,这和传统算法比,好像没什么优势啊?而且貌似更复杂了?

看起来是这个样子!传统算法中,是用乘法口诀将两数相乘,再处理进位。

但我认为,Trachtenberg算法最大的优势是进位简单,因为最大只有一。而且相对而言,将乘法转化成了加法,亦更为简单。

此时,有吃瓜群众指出,你这特么滴还有除法,敢说简单?

亲,取半的操作辣么简单,难道你也怕?

下面请翻到35页,我们开始学习7的乘法规则。

7的乘法规则和6很相似:

把被乘数乘2后加上右侧邻位的一半,如果这个数是奇数,那要在乘2后加5。所得值保留个位。若所得值大于9,则将其十位则带到下一位计算。

我们来看栗子:计算3412 x 7

第1位:右侧没数据,所以直接乘2,得4

第2位:1是奇数,所以先乘2再加5,1 x 2 + 5 + 2 / 1 = 8

第3位:注意1取半求整后是0,4 x 2 + 1 / 2 = 8

第4位:3 x 2 + 5 + 4 / 2 = 13. 留3,将1进位。

第5位: 0 x 2 + 1 + 3 / 2 = 2,养成先加进位的习惯

最后我们来讲5的乘法规则。它有点像6和7规则的杂交版,但更简单:

取被乘数的每一位右侧邻位的一半,如果当前位是奇数,则再加5

这回连进位都不需要考虑,因为把最大的数9取半求整后是4,即使要再加5,也只能是9。

我们照例用一个栗子来理解这条规则:计算436 x 5

第1位:6是偶数,而其右侧没有数字,所以写作0.

第2位:3是奇数,5 + 6 / 2 = 8

第3位:4是偶数,所以只取 3 / 1, 得1

第4位:0是偶数,所以只取 4 / 2, 得2

总结一下就是,在5的乘法中,被乘数的每一位数只是用来判断是不是要加5,并不参与运算。 所以算起来要简单多了。

【经验分享(续篇)】Trachtenberg system(特拉亨伯格速算系统)的更多相关文章

  1. 【经验分享】Trachtenberg system(特拉亨伯格速算系统)

    二战期间,俄国的数学家Jakow Trachtenberg(1888-1953)被关进纳粹集中营,在狱中,他开发出了一套心算算法,这套算法后来被命名为Trachtenberg(特拉亨伯格)速算系统. ...

  2. Trachtenberg(特拉亨伯格)速算系统

    二战期间,俄国的数学家Jakow Trachtenberg(1888-1953)被关进纳粹集中营,在狱中,他开发出了一套心算算法,这套算法后来被命名为Trachtenberg(特拉亨伯格)速算系统. ...

  3. 【原创经验分享】WCF之消息队列

    最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...

  4. (转)CMOS Sensor的调试经验分享

    CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...

  5. Expression Blend4经验分享:文字公告无缝循环滚动效果

    这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...

  6. Expression Blend4经验分享:制作一个简单的图片按钮样式

    这次分享如何做一个简单的图片按钮经验 在我的个人Silverlight网页上,有个Iphone手机的效果,其中用到大量的图片按钮 http://raimon.6.gwidc.com/Iphone/de ...

  7. CMOS Sensor的调试经验分享

    转自:http://bbs.52rd.com/forum.php?mod=viewthread&tid=276351 CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一 ...

  8. 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享

    CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起    这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...

  9. 沉淀,再出发——在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享

    在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享 一.工作准备 首先,明确工作的重心,在Ubuntu Kylin15.04中配置Hadoop集群,这里我是用的双系统中的 ...

随机推荐

  1. 多线程进阶---Thread.join()/CountDownLatch.await() /CyclicBarrier.await()

    Thread.join() CountDownLatch.await() CyclicBarrier.await() 三者都是用来控制程序的"流动" 可以让程序"堵塞&q ...

  2. Quartz学习——Quartz大致介绍(一)

    1. 介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,"任务进度管理器"就是 ...

  3. 小程序解释HTML富文本的两种办法

    今天写着着代码,读取数据库的内容时突然跳出"<span>.<p>. "这些HTML标签.字符,吓一跳:本来如果是写HTML.JS倒也没什么,但是我在写小程序 ...

  4. redis的sentinel主从切换(failover)与Jedis线程池自动重连

    本文介绍如何通过sentinel监控redis主从集群,并通过jedis自动切换ip和端口. 1.配置redis主从实例 10.93.21.21:6379 10.93.21.21:6389 10.93 ...

  5. JAVA常用API(Date、DateFormat、Calendar、System、Math、基本数据类型包装类)

    注:本文所有内容均属个人见解,如有错误望各位大佬好心指点批评,不胜感激 本章重点单词: parse:解析 format:格式化 pattern:模式 amount:数量 filed :领域 1.Dat ...

  6. Inno Setup打包注意事项

    Inno Setup是一个开源的,商业的,快捷的脚本打包工具. 具体打包流程根据界面提示就可以搞定,下面讲解几个注意事项 1.在安装包进行安装的过程当中,很多程序都需要修改配置信息,这就要求我们在安装 ...

  7. SQL升级Oracle挖的Null坑,你懂的!

    最近公司做系统数据库升级,主要由原来的SQL数据库升级Oracle数据库,对于拥有千万级数据库的实用系统来说,迁移不是件容易的时,光数据同步就需要很久,更别说要修改升级原来的SQL库使用的存储过程和视 ...

  8. win10 uwp 活动磁贴

    本文翻译:https://mobileprogrammerblog.wordpress.com/2015/12/23/live-tiles-and-notifications-in-universal ...

  9. Anroid四大组件service之本地服务

    服务是Android四大组件之一,与Activity一样,代表可执行程序.但Service不像Activity有可操作的用户界面,它是一直在后台运行.用通俗易懂点的话来说: 如果某个应用要在运行时向用 ...

  10. UVa225,Golygons

    刘儒家翻译的走出的图形可以自交,不知道大家是怎么理解的,反正我是认为这句话的意思是告诉我允许一个点访问多次 这样是WA的,n=15和n=16时多输出很多数据,应该是不允许自交,也就是不允许一个点访问多 ...