Skip to content

Instantly share code, notes, and snippets.

@shio-phys
Created April 23, 2015 17:51
Show Gist options
  • Save shio-phys/e0b53fff4518c1f6e719 to your computer and use it in GitHub Desktop.
Save shio-phys/e0b53fff4518c1f6e719 to your computer and use it in GitHub Desktop.
-- 本に載っていたコードは大体Qiitaに書いてしまったので、趣味で書いてみた円周率の計算コードを幾つか
-- 効率とかは気にしていないので収束はかなり遅い
-- ライプニッツの公式
4 * (sum (take 2000 (zipWith (/) (iterate negate 1) [1,3..])))
-- ウォリス積
2 * (product $ take 2000 $ zipWith (/) (concat $ map (replicate 2) [2, 4..]) (tail.concat $ map (replicate 2) [1, 3..]))
-- バーゼル問題(zeta(2) = π^2 / 6) オイラーさんマジ天才
sqrt $ 6 * (sum $ take 2000 $ map (1/) $ map (^2) [1..])
-- バーゼル問題(zeta(4) = π^4 / 90)
sqrt.sqrt $ 90 * (sum $ take 2000 $ map (1/) $ map (^4) [1..])
-- 調子に乗ってネイピア数も計算してみた
let factorial n = if n == 0 then 1 else n * factorial (n - 1)
-- exp(x)のテイラー展開
sum $ take 2000 $ map (1/) $ map factorial [1..]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment