円周率2 pi

改訂新版 C言語による標準アルゴリズム事典をSwiftでコーディング

アルゴリズム

円周率2 pi

実行

Playground

コード

import Foundation

func pi2() -> Double {
    var a:Double = 1
    var b:Double = 1 / sqrt(2)
    var s:Double = 1
    var t:Double = 4
    
    for _ in 1..<3 {
        let last = a
        a = (a + b) / 2
        b = sqrt(last * b)
        s -= t * (a - last) * (a - last)
        t *= 2
    }
    return (a + b) * (a + b) / s
}

print("相加相乗平均")
print("円周率:\(pi2())")

Algorithm, Swift

Posted by shi-n