如何估算 2^2^2^2^2^2 的大小?
想知道这种指数的大小如何估算,比如有多少个二进制或者十进制位。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
想知道这种指数的大小如何估算,比如有多少个二进制或者十进制位。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
有人定义过b个a写成(a^a^...^a)的这个运算叫“Tetration”。
详情看Matrix67的这篇文章: http://www.matrix67.com/blog/archives/3857
以我的估计,很难有一个有效的方法有效的表示Tetration的对数运算。因为Tetration本来就是形成相当大数量的运算,增长实在是太快了,甚至指数运算也兜不住它。表示一个Tetration运算出来的数,甚至没有明显比Tetration更可行的其他形式。
另有这个Wiki页面,似乎提供了一些估计的方法,还没详细看。http://en.citizendium.org/wiki/tetration
虽然我也不懂,不过 WolframAlpha 知道:
http://www.wolframalpha.com/input/?i=2%5E2%5E2%5E2%5E2%5E2
二进制位:2^65536 个
十进制位:的确是可以用 log 的方法:有 2^65536 * log10(2) 个。
我在运算顺序上坑了。呜咦……
如果是只算位数的话,直接用log来估一下嘛。比如
log10(2)
大概是0.3
多一点点,2^2^2^2^2^2
的位数大概就是0.3*2*2*2*2*2 = 9.6
,向上补整是10位数。如果要估算首位数字,那
log10(2)
的精度要高一点,考虑到第二位影响,估算至少需要小数点后3位,按0.301
来估。这样0.301*2*2*2*2*2 = 9.63
,首位数字是10^0.63
。因为log10(2)
大约0.301
,估计10^0.63
会比4大一点点,可以估算首位为4。二进制应该可以一样来弄
ln2 = 1
,1*2*2*2*2*2 = 16
,17位数……(好像有啥不对?嘛,二进制我搞不清楚……)