一个5的速算法,由此引发的乱七八糟的想法
过年回家看小侄子在玩算术卡片,跟孩子玩了一会儿。然后逛b呼看见一个挺热的话题——证明:哥德巴赫猜想,突然想起来当年上初一时候胡思乱想碰出来的一个关于5的速算法。当时想着跟同桌装逼,然后验算的时候发现原理极其简单……只是那时候刚刚学代数,还没把xyz用熟练。还好装逼前冷静了一把,233。
由此可见,先进的数学工具是多么重要。感谢傅里叶,感谢泰勒,感谢发明矩阵的那一票人,感谢cctv……
归纳
尾数为5的数的平方
5 * 5 = 25 | 0 = 0 * 1 |
15 * 15 = 225 | 2 = 1 * 2 |
25 * 25 = 625 | 6 = 2 * 3 |
35 * 35 = 1225 | 12 = 3 * 4 |
… | |
(x * 10 + 5) * (x * 10 + 5) = (x * x + x) * 100 + 25 |
于是可以快速计算 255 * 255
的结果为 (25 * 25 + 25) * 100 + 25
,即 (((2 * 2 + 2) * 100 + 25) + 25) * 100 + 25
,即 65025
。
同理, 355 * 355
的结果为 (35* 35 + 35) * 100 + 25
,即 (((3 * 3 + 3) * 100 + 25) + 35) * 100 + 25
, 即 126025
。
写起来很麻烦,其实心算挺快的,本来到这就想着找个机会把这个b抖出来,不过想了想怎么扩展一下应用范围,然后就有了下边的一坨。
两个不同的尾数为5的数的乘积
15 * 25 = 375 | 35 = 1 *2 * 10 + (1 + 2) * 5 |
15 * 45 = 675 | 65 = 1 * 4 * 10 + (1 + 4) * 5 |
15 * 65 = 975 | 95 = 1 * 6 * 10 + (1 + 6) * 5 |
… | |
25 * 45 = 1125 | 110 = 2 * 4 * 10 + (2 + 4) * 5 |
25 * 65 = 1625 | 160 = 2 * 6 * 10 + (2 + 6) * 5 |
25 * 85 = 2125 | 210 = 2 * 8 * 10 + (2 + 8) * 5 |
… | |
(x * 10 + 5) * (y * 10 + 5) = (x * y * 10 + (x + y) * 5) * 10 + 25 |
记得以上的规律凑出来大概花了我两节自习课的时间,结果把提取出来的规律写成式子瞬间我就笑了。咩咩的这不就普通的因式分解嘛。再仔细想想,大概所有的速算法都是xyz和10的倍数相结合的产物,甚至直接从珠算里挪来口诀啥的。
如果前提是没学代数,这些算法还是挺唬人的,至少在小学阶段是可以笑傲群雄了。但如果接触到更高级点的数学工具,这些特例方法终归会被更具普适性的算法所解释。就如观星仪之于牛顿三定律,牛顿三定律之于爱因斯坦的侠义相对论一样。知乎的那位高中生在高中有限的知识体系下去理解哥德巴赫猜想,就差不多类似于以上情况了。
大概,想证明歌德巴赫猜想真的需要发明一套新的数学工具吧,毕竟我们对这个世界也仅仅是管中窥豹罢了。