【问题标题】:What is the required recursive function(s) in Scheme programming language to compute the following series?Scheme 编程语言中计算以下系列所需的递归函数是什么?
【发布时间】:2020-12-06 16:05:50
【问题描述】:

Scheme 编程语言中计算以下序列所需的递归函数是什么?需要解释

1^2/2^1 + 3^4/4^3 + 5^6/6^5 + 7^8/8^7 + 9^10/10^9

【问题讨论】:

    标签: recursion scheme


    【解决方案1】:

    那么,每个术语是什么样的?它是 n^(n+1)/(n+1)^n。并且您想在达到 10 时停止(因此,如果 n > 10,则停止)。因此,编写一个带有单个参数 n 的函数,它可以:

    • 如果 n > 10,则返回 0;
    • 将 n^(n+1)/(n+1)^n 添加到在 n + 2 上调用自身的结果中。

    然后这个带有参数 1 的函数将计算你想要的。倒退可能更容易:

    • 如果 n
    • 将 n^(n+1)/(n+1)^n 添加到在 n - 2 上调用自身的结果中;

    那么参数为 10 的函数就是你想要的。


    或者你可以这样做更有趣:

    (define s
      (λ (l)
        ((λ (c i a)
           (if (> i l)
               a
               (c c
                  (+ i 2)
                  (+ a (/ (expt i (+ i 1))
                          (expt (+ i 1) i))))))
         (λ (c i a)
           (if (> i l)
               a
               (c c
                  (+ i 2)
                  (+ a (/ (expt i (+ i 1))
                          (expt (+ i 1) i))))))
         1 0)))
    

    但我不推荐。

    【讨论】:

      【解决方案2】:
      //power function
      (define (power a b)
           (if (zero? b) //base case
            1    
           (* a (power a (- b 1))))) //or return power of a,b
      
      // sum function for series
      
          (define (sum n)
           (if (< n 3) //base case 
               0.5
             (+ (/  (power (- n 1) n) (power n (- n 1))) (sum (- n 2 ))  ))) //recursion call
      
      >(sum 10) // call sum function here .
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-13
        • 1970-01-01
        • 2015-04-30
        • 2015-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多