haskell

haskell版 行列式

import System.Random randomList :: Random a => a -> a -> IO [a] randomList a b = fmap (randomRs (a, b)) newStdGen pmat :: Int -> [[a]] -> [[a]] pmat n d = [tail x | x <- left ++ tail right] where (left, right) = splitAt n d sig :: (Integra…

行列式のhaskell版

pmat :: Int -> [[a]] -> [[a]] pmat n d = [tail (d !! i) | i <- [0..length d - 1], i /= n] sig :: (Integral a, Num b) => a -> b sig a = if mod a 2 == 0 then 1 else -1 det :: (Num a, Fractional a) => [[a]] -> a det [[x]] = x det [[a, b], [c,…

ピタゴラス数 その2

前回のphは、(3,4,5),(4,3,5),(6,8,10)のように、単に順番を入れ替えただけのやつや、互いに素でないのが混ざっていて楽しくないので、x factors :: Int -> [Int] factors x = [n | n <- [1..x], x `mod` n == 0] min2 :: [Int] -> Int min2 [x] = x min2 (x…

ピタゴラス数

プログラミングHaskellの第5章演習問題より。印象的だったので…問題 大きさnまでの正の整数を要素とするピタゴラス数を列挙する関数phを書こうすこし親切な問題の説明 1.まず、大きさnまでの正の整数3個の組み合わせを生成してみよう 2.その組み合わせのうち…