1.对数的性质
(1) alogab=b
(2) logaa=1
(3) loga(M*N)=logaM+logaN
(4) loga(M÷N)=logaM-logaN
(5) loga(Mn)=nlogaM
(6) logaM1/n=logaM/n
(7) logab*logba=1
2. 相关题目
(1) 求 N ! (1 <= N <= 5000)中有多少位数字。
若直接求 N ! 的结果,然后再计算有多少位数字,也是可行的,因为是大数阶乘,所以要用数组来计算,会用到大量的乘法除法取余运算,时间空间花费都比较大。
用对数的性质来解这个题是最佳的选择。
首先我们知道 看一个数字有多少位就是看它是10的几次幂,如101有2位,102 有3位。。。
也就是 10x(k=<x<k+1,k为整数,x为浮点数),则 10x的结果就有k+1位数字。
那也就是我们要求log10( N ! )
log10( N ! ) = log101 + log102 + log103 + ... + log10N

本文探讨了对数在解决算法问题时的重要性,特别是针对计算阶乘位数的题目。通过利用对数的性质,可以避免直接进行大量乘法和除法运算,显著提升计算效率。对数的应用不仅简化了代码,还减少了时间和空间复杂度,强调了程序员在编程时应考虑效率问题,不应过度依赖计算机资源。
最低0.47元/天 解锁文章
3836

被折叠的 条评论
为什么被折叠?



