IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

2015-06-01から1ヶ月間の記事一覧

最大回避ヒープ

参考 FOP - 第1章 二分ヒープ木の楽しみ data (Ord a) => Tree a = Null | Fork Int a (Tree a) (Tree a)みたいにdata定義で型の制約が出来ないみたいですね。 data Tree a = Null | Fork Int a (Tree a) (Tree a) deriving (Show) isEmpty :: (Ord a) => T…

エラトステネスの篩

エラトステネスの篩を実装してみる。 まずは100までで試してみる。 余りがゼロの数を取り除く。 *Main> filter (\x -> mod x 2 /= 0)[2..100] [3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,7…

最大公約数を求める

小さい作業を積み重ねていく その1:公式を使わずにやってみる。 余りの計算はrem関数を使う。 Prelude> 5 % 3 <interactive>:9:3: Not in scope: `%' Prelude> 5 / 3 1.6666666666666667 Prelude> 5 `rem` 3 2 Prelude> 5 `rem` 1 0 Prelude> 5 `rem` 5 0 Prelude> :t re</interactive>…

共通した最も長い接頭語を求める(Longest Common Prefix)

["abcdefg", "abcxyz", "abcaaaaa"] からabcを求める。 たとえば、Javaであれば、このリンク先にあるようなロジックになる。 LeetCode – Longest Common Prefix (Java) 一見すると、ループが多い印象。 これをHaskellで実装するとどうなるかを考えてみた。 …