なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
724: デフォルトの名無しさん [sage] 2016/06/20(月)19:47 ID:YaidyggX(1/2)
import Data.Function (on)
import Data.List (concatMap, groupBy)
main =
    let (f:r) = mypi 2 4 1 12 4
        s = slice 5 $ slice 10 $ concatMap show r
    in putStrLn (show f ++ ".")
       >> putStr (unlines $ map unwords $ take 200 s)
slice :: Int -> [a] -> [[a]]
slice n ls = let q = concatMap (replicate n) [0..] :: [Int]
             in map (map snd) $ groupBy ((==) `on` fst) $ zip q ls
mypi :: Integer -> Integer -> Integer -> Integer -> Integer -> [Integer]
mypi k a b a1 b1 =
    let p = k * k
        q = 2 * k + 1
        a' = a1
        b' = b1
        a1' = p * a + q * a1
        b1' = p * b + q * b1
        loop a a1 d d1 =
            if d == d1 then
                d : let a' = 10 * (a `rem` b' )
                        a1' = 10 * (a1 `rem` b1')
                    in loop a' a1' (a' `quot` b') (a1' `quot` b1')
            else
                mypi (k + 1) a b' a1 b1'
     in loop a' a1' (a' `quot` b') (a1' `quot` b1')
えんしうりつを100まんけたひょうじする
726: デフォルトの名無しさん [sage] 2016/06/20(月)23:52 ID:YaidyggX(2/2)
$ time ./pi >/dev/null
./pi > /dev/null 0.40s user 0.00s system 99% cpu 0.400 total
一瞬やね(最適化 -O)
ちなアルゴリズムはRubyのソースについてるやつから持ってきた
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s