zoukankan      html  css  js  c++  java
  • powershell 递归 算法 的例子

            递归,简单地说就是函数不停地调用自身。 循环和递归,是程序常用解题方式,几乎99%的语言都有。 递归使写程序更简单,更清晰,但比循环更占内存。

            那么如何从递归中退出呢?一般建议把递归放在if中,或else中。也就是说在递归外面判断条件。条件成立,或者不成立,再无限递归。

            不过貌似脚本语言递归的性能都不太好,因为库都比较大,出栈入栈就好像胖子过通道。 而powershell的递归在脚本语言中还算是差的,因为年头毕竟短,而且并没专门考虑过优化。 当然这都是传言,我的简单试验,性能还可以,大家也多用用递归,多测测啊。

    function 用递归法计算阶乘($值)
    {
        if($值 -gt 1)
        {
            return ( $值 * (用递归法计算阶乘  ($值-1))  )    
        }
        else
        {
            return $值
        }
    }
    
    #递归结果超过double类型的最大值时,就要用下面的【无穷大正整数】,但注意:安装 .net4 先! 
    [reflection.assembly]::loadwithpartialname("System.Numerics")
    $anser_first="1005"
    $大数=[System.Numerics.BigInteger]::Parse($anser_first)
    
    Measure-Command 
    {
        Write-Host  (用递归法计算阶乘 $大数)
    }

    ----------------------------测试结果----------------------------

    2013年测试成绩,算1005位用了2秒多。

    Ticks             : 26510676

    Days              : 0

    Hours             : 0

    Milliseconds      : 651

    Minutes           : 0

    Seconds           : 2

    TotalDays         : 3.06836527777778E-05

    TotalHours        : 0.000736407666666667

    TotalMilliseconds : 2651.0676

    TotalMinutes      : 0.04418446

    TotalSeconds      : 2.6510676

    ----------------------------

    2017年测试成绩,算1005位用了半秒多。

    Ticks             : 5438699

    Days              : 0

    Hours             : 0

    Milliseconds      : 543

    Minutes           : 0

    Seconds           : 0

    TotalDays         : 6.29479050925926E-06

    TotalHours        : 0.000151074972222222

    TotalMilliseconds : 543.8699

    TotalMinutes      : 0.00906449833333333

    TotalSeconds      : 0.5438699

    powershell 递归 算法 例子 powershell  灰主牛 官网 官方网址 电子书  阅读器  语音计算器 efs copy backup ps_ping ps_tracert 三贱客 天罡茅山秘

  • 相关阅读:
    微信支付系列(2)——jsapi支付源码解析
    微信支付系列(1)
    java创建文件和目录
    在线文档预览方案-office web apps
    必要的思考
    做WEB开发的时候,前端与后端我们应该要注意哪些细节,哪些容易出现的漏洞?
    使用MVVM框架时,如何处理在页面动态渲染完之后需要发生的事件呢?
    系统间通信(10)——RPC的基本概念
    系统间通信(9)——通信管理与RMI 下篇
    系统间通信(8)——通信管理与RMI 上篇
  • 原文地址:https://www.cnblogs.com/piapia/p/2881011.html
Copyright © 2011-2022 走看看