2019-01-26

Haskell ``` recurenceFormula Int otherwise scanl div recurenceFormulaLoop map Loop アルゴリズム こいつ horner method hornerMethod foldl ),( ).. 脳みそ pascalTriangleOneLine pascalTriangle filter (/= ウォーミングアップ (([ 100 head )), length group sort then else コード ヒストグラム バッドマン Google Play 2500 ビギンズ ライジング ジョーカー ダーク ナイト 上がり Schemer ところ バットマン

Haskell

漸化式。

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と言っていた。

あとジョーカーが病院爆破するところ割と好きです。

ダークナイト、かっこよすぎた。

今日やったこと

明日やること

comment:

Tweet

Home