• 6个2教你认识递归的力量!


    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个格子里放大米粒的故事"要大多了,递归的力量不可想象!

  • 相关阅读:
    Codeforces 1528E Mashtali and Hagh Trees
    Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round)
    Codeforces 1517G Starry Night Camping
    Codeforces 1508E Tree Calendar
    Codeforces 1508D Swap Pass
    Codeforces 1511G Chips on a Board
    Codeforces 1511F Chainword
    Codeforces 1516E Baby Ehab Plays with Permutations
    CF1539A Contest Start 题解
    关于 manacher
  • 原文地址:https://www.cnblogs.com/flyant/p/4337917.html
Copyright © 2020-2023  润新知