zoukankan      html  css  js  c++  java
  • 1.31 (另一种求圆周率的算法)

    (define (product term a next b)
      (if (> a b)
          1
          (* (term a)
             (product term (next a) next b))))
    (product (lambda (x) x)
             1
             (lambda (i) (+ i 1))
             5)

      

    (define (product term a next b)
      (define (iter a result)
        (if (> a b)
            result
            (iter (next a)
                  (* (term a) result))))
      (iter a 1))
    
    (define (product-normal term a next b)
      (if (> a b)
          1
          (* (term a)
             (product term (next a) next b))))
    
    (define (factorial n)
      (product (lambda (x) x)
               1
               (lambda (i) (+ i 1))
               n))
    
    (define (numer-term i)
      (cond ((= i 1) 2)
            ((even? i) (+ i 2))
            (else (+ i 1))))
    
    (define (denom-term i)
      (if (odd? i)
          (+ i 2)
          (+ i 1)))
    
    (define (pi n)
      (* 4
         (exact->inexact ; exact->inexact 函数转换除法的商,确保计算所得的结果为浮点数格式(而不是分数格式)
            (/ (product numer-term
                        1
                        (lambda (i) (+ i 1))
                        n)
               (product denom-term
                        1
                        (lambda (i) (+ i 1))
                        n)))))
    
    (pi 50000)
    

      

  • 相关阅读:
    JSChart_页面图形报表
    hdu 2602(dp)
    hdu 1518(dfs)
    hdu 1716(dfs)
    hdu 1002大数(Java)
    SPOJ 375. Query on a tree (树链剖分)
    poj 1091 跳蚤
    HDU 4048 Zhuge Liang's Stone Sentinel Maze
    HDU Coprime
    HDU Machine scheduling
  • 原文地址:https://www.cnblogs.com/R4mble/p/7893104.html
Copyright © 2011-2022 走看看