前几天算复利题,卡在5的100次方是多少,拿普通手机计算器直接崩掉,屏幕只跳个溢出提示,折腾半天出不来完整数字。一开始以为就是计算器性能不行,换了电脑自带的简易计算器,结果还是只能给出科学计数法,不能把全部数字摊开。

随手拿纸笔去硬算,先算低次幂找规律,5的1次方是5,平方25,三次125,四次625,看着末尾一直都是5,就猜不管多少次乘,最后一位铁定不变。算到5的10次方,数字已经很大,手写的时候连续写错两次进位,写到二十几次的时候,一长串数字排满半张草稿纸,每多乘一次,就要从头核对一遍前面的数位,稍不留神就错位。

算到三十多次,已经意识到靠手写根本算不完一百次相乘,这个量级的数字,位数多到一张A4纸都未必写得下。当时脑子里还在想,能不能简化,把5的100次方拆成(5²)的50次方,也就是25的50次方,又可以继续拆成25平方的25次方,625的25次方。拆分之后计算步骤变少,但每一步的基数还是巨大,手动相乘依旧麻烦,稍微走神就把数位对齐弄错,算出来的结果前后对不上。

找朋友借了支持大数运算的工具,输入式子,几秒就出了完整结果,同时附带科学计数形式7.888609052210118e+69。这个e+69意思就是小数点要向右移动69位,整个数是一个70位的整数,最末位一直保持5,和之前纸笔推算的一样。

不是所有计算器都能展示完整大数。

普通手机、系统自带简易计算器,设计上只保留有限有效数字,一旦数值超过上限,就直接转为科学计数法,部分老旧版本甚至直接报错溢出,不会给出完整的一串数字。想拿到不带简写的全部数位,就得用专门支持高精度大数计算的工具,网页版或者代码脚本都行,不用自己一步一步手动相乘。

后来试着核对位数,5的100次方,常用对数估算,lg5≈0.69897,100乘以0.69897等于69.897,整数部分是69,所以这个数的位数就是69加1等于70位,和工具算出来的能对上。这个对数估算的法子很快,不用算出完整数字,就能提前知道这个数一共有多少位,适合快速预判规模,不用傻乎乎的一直笔算。

最开始没考虑对数估算,硬着头皮在草稿纸上反复乘,浪费了快一个小时,算到5的35次方就放弃了,纸面计算大数幂本身就容易出错,进位、数位对齐随便一处失误,后面所有数字全部作废。如果只是粗略估算量级,科学计数法足够用,要是题目要求写出全部阿拉伯数字,只能依靠高精度计算工具,手动计算完全不现实。

把完整数字扫了一眼,开头是7888609052210118,后面跟着一长串数字,末尾固定为5。日常做题,绝大多数场景只需要科学计数形式,很少需要完整写出70位数字。

草稿纸留在桌面,边角上还记着拆分幂次的式子,没收拾。