常用对数表(数学中log的基本知识)我读初二的时候,其中一本教材就是薄薄的《常用对数表》。当时很好奇,这个常用对数表是怎么算出来的。昨天看到李永乐对比3的361次方和10的81次方大小,又想起来这个初中时候的疑惑。网上搜到这个文章,觉得很有收获,转帖给大家。虽然不一定是当时人的算法,但是也可以开拓我们的思维。 回到十七世纪,让我来编算一本常用对数表 自十八、九岁学习了对数后,就觉得造对数表真不简单。据说十七世纪那时,说如果谁发现了对数表上有一个数字错,就奖一两黄金。 据百科百度:纳皮尔(1550~1617年),苏格兰数学家,对数的创始人。他的最大贡献是发明了对数。纳皮尔的杰作《奇妙的对数定律说明书》于1614年6月在爱丁堡出版。纳皮尔的朋友,英国人布里格斯,将纳皮尔创立的对数改为常用对数,它才得到广泛使用。并在1624年出版了《对数算术》,公布了以10为底包含120000及90000100000的14位常用对数表。 1671年,著名的德国数学家莱布尼兹(G。W。Leibnitz)制成了第一台能够进行加、减、乘、除四则运算的机械式计算机。 可见,布里格斯编算常用对数表时,机械式计算机还未发明,看来只能是手算了。 我那时不知道十七世纪是怎样编算对数表的。但我还是想自己亲手来编一份,那怕为数很少也可以,只想弄明白,对数表是怎样编算的。这一心愿几十年来一直没有了结。 想起二十世纪五六十年代,对数表不能离手,少了它就无法工作,真不胜感慨。当70年代用上了飞鱼牌手摇计算机后,就告别了六位对数表。当80年代用上了电子计算器后,又告别了八位函数表和手摇计算机。在电脑已普及的今天,我仍有用手算方法来造对数表的想法,这似乎有点可笑,但怎样造原始的对数表的问题,仍牵引着我的心,一直想了此一事。 想不到年老了,竟灵光一闪,得到了一个造表方法,并且可以分配到许多人,各自独立计算不同的数值范围,最后汇集于一起,成为一本对数表,这样就可以较快完成,不必化几年、乃至几十年时间了。 所谓常用对数,就是以10为底时,有方程10DZ。如果知道一个数Z(叫真数),则10的指数就是D,D就叫十进对数,也叫常用对数。给出Z,求D。并以DLgZ表示之。例如10D2,给出2,求D。并以DLg2表示之。查对数表可得DLg20。30103,即100。301032。亦即10的0。30103次方等于2。 10的整数次乘方可以算,可是0。30103次方怎么算呢?真是无法理解。但如果说,因为0。3010330103100000,那末先算10的30103的次方,再开100000次方,倒是有道理的,但2的对数是0。30103,决不可能是这样算的,所以仍很玄。那么2的对数是0。30103,到底是怎样算出来的呢? 这么一想就有一个启发,就是10的零点几次方,可以这样算:先乘方、再开方,而主要是开方。例如10的开平方,就是10的0。5次方。10的开3方,就是10的0。33333次方等等。受此启发,经反复试算,得到编算常用对数表的步骤和方法: 1先求最基础的对数 1、我想,世界上第一个常用对数,可能就是3。16227766的对数0。5。因为3。1622776610 10(12)100。5,而0。5就是它的对数。10的开方,用笔算可以一次开出,也可以用逐步试算趋近。如先用3。163。169。9856,不够,再用3。1633。16310。004569,超过了一点,再用 3。162283。1622810。0000147984最后定为3。16227766。也就是说3。16227766的对数为0。500000。 2、第二个,可能就是2。15443469的对数为0。333333了。因为2。1544346931010(13) 100。33333,而0。3333333就是它的对数。10的开3方比较麻烦,可以逐步试算趋近。如先用2。152。152。159。9384,不够,再用2。15442。15442。15449。99952,还不够,再试,最后定为2。15443469。也就是说2。15443469的对数为0。333333。 33。16227766的对数为0。500000。2。15443469的对数为0。333333这样的对数,我称它们为最基础的对数。最基础的对数需要多少个呢?这里仅算出8个,我想也许够了。即只要计算: 10的12次方,亦即10的开2次方。注意2是素数。 10的13次方,亦即10的开3次方。注意3是素数。 10的15次方,亦即10的开5次方。注意5是素数。 10的17次方,亦即10的开7次方。注意7是素数。 10的111次方,亦即10的开11次方。注意11是素数。 10的113次方,亦即10的开13次方。注意13是素数。 10的117次方,亦即10的开17次方。注意17是素数。 10的119次方,亦即10的开19次方。注意19是素数。 就可以得到相应的对数。用这些最基础对数,再去拓展其他的对数。计算这些最基础对数,只要用开方就可以了。开方虽然很烦,特别是开7次方以上时,要逐步、反覆连乘7次以上来校核改进,的确很烦,但毕竟是可以用手工算得出来的。我想,在十七世纪时,也只能这样硬算了。 4、而10的开4次方,10的开6次方,10的开15次方就不必了,因为它们可以根据上述最基础的对数,就能方便算出的,不必白费力气了。 由10的开D次方所得的《基础对数表》 2基础对数表扩充 有了上面的最基础的对数之后,就根据对数基本原理:真数相乘除,对数便加减的方法,可将最基础的对数扩充。例如: 1(210)(510)3。1622776601。5848931925。01187 相应之对数为:0。5000000。2000000。70000 2(210)(510)3。1622776601。5848931921。99526 相应之对数为:0。5000000。2000000。30000 3这样,扩充后的对数,共96个,见下表: 基础对数扩充表,由最基础的真数和对数,经真数乘除、对数加减而得。 当然,这个表很小,数量远远不够。但可以作基础,再通过多次交错乘除,得到更多的对数。但要想通过更多次交错乘除,得到全部对数,是不可能的,得另找出路。其实,只要设法先求出素数的对数,那就一劳永逸地解决问题了。这张《基础对数扩充表》就为下一步求素数的对数作了准备。 3求素数的对数(注:采用的二分法) 大家知道,合数是素数的乘积。所以,只要知道素数的对数,就可以用乘除、加减法,算出合数的对数。于是任何数的对数,都可以算出。那末,素数的对数怎样求呢? 分两步: 第一,选择数据(选两个基准点)。在《对数扩充表》内,选择尽量靠近所求素数的两个数。例如,要算2的对数,表中仅有真数1。99526与2。20220其中1。99526离2很近,选中。而2。20220离2还远,我们就不用它,另找。方法是:仍利用上面的对数扩充表,找到1。95393与1。03273,两个数相乘,得: 1。953931。032732。01788,(离2很近了),选中。其相应对数为: 0。290910。013990。30490。 这样,就取1。99526与2。01788两个数去内插,求2的对数。1。99526与2。01788这两个数,称做逼近值。 第二,内插法(二分法计算)。 真数对数 a1。99526A0。30000 b2。01788B0。30490求Z2的对数。 在很小区间内(所求值百分之一、二的误差),采用线性内插公式 LgZA(BA)(ba)(Za) 计算得Lg20。30103 这个方法只用到乘,除、加、减,所以可用手算。为减少工作量,最好多采用乘法去找逼近值、内插。 以下是Lg2、Lg3、Lg5、Lg7、Lg41、Lg43的计算过程: 数据准备中的真数和对数,来自《基础对数扩充表》 5分工合作、同心协力编常用对数表 最基础对数对数扩充表素数的对数合数的对数,这样的四个步骤,使许多人同时作业成为可能。组织分工如下: 1、先由少数人计算最基础对数。要准,取位要多,如编八位对数表,最基础对数至少要取十位以上。 2、再由少数人,分工计算对数扩充表。最基础对数与对数扩充表便作为公用。 3、组织许多人,同时计算素数的对数。每人分担一段,如150、50100、101200、201400在各自范围内,计算素数的对数。素数的对数也作为公用。 4、组织许多人,同时计算合数的对数。也是每人分担一段,既互用成果,又互不干涉。 5、每人每天的成果,汇总公布,以便下一步工作时互相利用,提高工效。 结语 假如把乘除比作一条汹涌的河,那末对数表就是一座平缓的桥。它使众多的实用计算者,较轻松的到达彼岸,极大的提高工作效率。但时隔三百年至于今天,那些造桥的人,乃至造桥的方法,己淹没在历史的巨卷之中,对数表也进入了历史博物馆。 我们纪念逝去的人,还要发愿:要发扬先辈追求真理、为全人类效力的精神,为科学的理性发展而学习、而奋斗!