看板 Math 關於我們 聯絡資訊
原文及回文恕刪 題外話,原文讓我想起曾看過的一個小遊戲。 求兩個數相乘, 其中一個數一直除以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://www.ptt.cc/bbs/Math/M.1717992185.A.AE2.html
sluggard : 哇!!謝謝分享!真的好有趣喔~ 06/10 15:10
XII : 這個叫Russian Peasant Multiplication 06/15 20:47