作者Golven (五代裕作)
看板Math
标题Re: [其他] 二进位与二的平方
时间Mon Jun 10 12:03:02 2024
原文及回文恕删
题外话,原文让我想起曾看过的一个小游戏。
求两个数相乘,
其中一个数一直除以2,
而另一个数一直乘以2。
之所以称为小游戏是因为这种作法比直接乘开还慢。
连除2的一侧若有余数(也只能是1)则做记号,一直除到商为0。最後把所有做记号的右侧(
连乘2的那一侧)相对应的数相加,结果就是答案。
例:53*67
53. 67
26 134
13. 268
6 536
3. 1072
1. 2144
67+268+1072+2144=3551
当时百思不得其解,後来才突然发现,
左侧不就是把一个数转为2进位的算法?
53*67
=(110101)*67
=(2^5+2^4+2^2+2^0)*67
=2144+1072+268+67
=3551
难怪另一个数要连乘2…
反过来做:
67. 53
33. 106
16 212
8 424
4 848
2 1696
1. 3392
67*53
=(1000011)*53
=(2^6+2^1+2^0)*53
=3392+106+53
=3551
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.105.70.247 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Math/M.1717992185.A.AE2.html
1F:推 sluggard : 哇!!谢谢分享!真的好有趣喔~ 06/10 15:10
2F:推 XII : 这个叫Russian Peasant Multiplication 06/15 20:47