円周率2 pi

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

異性体の問題 counting isomers
実行: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())")


[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です