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

  • 相关阅读:
    pycharm使用技巧
    for 循环
    面向对象进阶
    python实现socket上传下载文件-进度条显示
    python实现进度条--主要用在上传下载文件
    django下常用查询的API
    django下model.py模型的定义
    django下数据库配置
    ORM机制简介
    views.py文件详解
  • 原文地址:https://www.cnblogs.com/flyant/p/4337917.html
Copyright © 2011-2022 走看看