2025-11-20 06:44:05
首先看问题,n的n次方再n次方就是n^(n^n),而(n+1)^n是另一个数。要算它们的位数差,得用对数。比如n=2,n^(n^n)=2^4=16,两位;(n+1)^n=3^2=9,一位,差1位。再试n=3,n^(n^n)=3^27≈7.6e12,13位;(n+1)^n=4^3=64,2位,差11位。发现差值随n增大变得特别大,因为n^n增长得比n快很多。
用对数算位数,位数=整数部分+1。n^(n^n)的位数是floor(n^n log10(n)) +1,(n+1)^n的位数是floor(n log10(n+1)) +1。比如n=4,n^(n^n)=4^256≈1e154,155位;(n+1)^n=5^4=625,3位,差152位。因为n^n是指数爆炸,而(n+1)^n只是多项式增长,所以差值会越来越大。再比如n=5,n^(n^n)=5^3125,位数≈31250.69897≈2183位;(n+1)^n=6^5=7776,4位,差2179位。这说明差值几乎就是n^n log10(n) - n log10(n+1)的整数部分。所以结论是,n^(n^n)的位数比(n+1)^n多出大约n^n log10(n) - n log10(n+1)位,实际计算时取整数差。
本题链接: