漸化式。
recurenceFormula :: Int -> Int -> [Int]
recurenceFormula n r
| n < 0 || r < 0 = []
| otherwise = scanl (\x y -> x * (n - y + 1) `div` y) 1 [1..r]
recurenceFormulaLoop :: Int -> [[Int]]
recurenceFormulaLoop n = map (\x -> recurenceFormula x x) [0..n]
Loopの方は専門書に合わせたやつ。
「C言語による初めてのアルゴリズム入門」を利用している。
いつまで続くかしらんがこいつをHaskellでやっていきである。
horner's methodである。
hornerMethod :: Int -> [Int] -> Int -> Int
hornerMethod x as n = foldl (\p i -> p * x + (as !! i)) (as !! n) [(n - 1),(n - 2)..0]
nが小さすぎると多分動かない。
少し苦戦してしまった。小さい脳みそだとつらたんである。
しかし良いこともある。この程度の簡単な実装でも達成感が湧いてくることだ。
pascalTriangleOneLine :: Int -> Int -> [Int]
pascalTriangleOneLine n r = scanl (\p i -> p * (n - i + 1) `div` i) 1 [1..r]
pascalTriangle :: Int -> [[Int]]
pascalTriangle n = [0]:map (\x -> (filter (/= 0) $ pascalTriangleOneLine x n)) [1..n]
はいはい余裕余裕。
ウォーミングアップでここまでイキることのできる生物、私だけではないだろうか。
map (\x -> (([0,10..100] !! (head x)),length x)) $ group $ sort $ map (\x -> if x == 0 then 0 else x `div` 10) [35,25,56,78,43,66,71,73,80,90,0,73,35,65,100,78,80,85,35,50]
なんだこのクソコード。。。
10点ごとのヒストグラムです・・・。
バッドマンの映画三作購入した。Google Playで2500円だったのでとても安かった。と思う。多分。
とりあえずビギンズ見たけど非常に良かった。
私もライジングしたい。
それにしてもジョーカーが強すぎる。
ダークナイト、見てて辛かった。這い上がりは
陰謀をねる人?(陰謀者だったか)、をSchemerと言っていた。
あとジョーカーが病院爆破するところ割と好きです。
ダークナイト、かっこよすぎた。
Haskell
バットマンみた。
生きた。
生きる。
Haskell
comment:
Tweet