2^(2^(2^(2^(2^2))))=?
这个是很久以前我自己想出来的一个计算式,绝对原创。或许其他专业人士早就发现了,只是我孤陋寡闻,并没有从网上看见它。
这个计算式最大的趣味就在于它看起来并没有 2^99999999999999999999999 那么吓人,但是它真正的值比2^99999999999999999999999大了无数倍,因为从我写出这个计算式后,我发现我甚至无法用语言去描述这个结果的长度和广度。
我们看看这个计算式一步一步的解析:
2^(2^(2^(2^(2^2))))=2^(2^(2^(2^4)))=2^(2^(2^16))=2^(2^65536),到了这一步,你可以想象一下,这个数字到底是多大。假设计算出来的值每一位占据宇宙中一个电子空间大小,那么我们的宇宙(假设最大直径300亿光年)能否装满这个数字?
作为coder,很明显这个是一个递归计算.可用如下代码实现,结果Pow2(5, 2)已经显示为无穷大,而window自带计算器计算为Pow2(5, 2)=4.5624406176221952186411716057003e+192。
void Count() { var number = Pow2(6, 2); //5次递归计算 } dynamic Pow2(int count, dynamic number) { return (--count > 0) ? Pow2(count, Math.Pow(2, number)) : number; }
这个数值比"在棋盘上64个格子里放大米粒的故事"要大多了,递归的力量不可想象!