2011-09-01から1ヶ月間の記事一覧
ttp://poj.org/problem?id=1852 にある、蟻の問題。(POJ,No.1852) どうやるのか思いつかなかったけど、解放読んだら感動したので書いてみた。 datalist :: Int -> String -> [Int] datalist n = map read.take n.words minf :: Int -> [Int] -> Int minf l…
Linux (Fedora) にて。 twitterクライアントの存在は、Fedora使い始めた時から知ってるけど、実際に使ったこと無かったので気になった。 導入してみた。 sudo yum install gwibberで、インストール完了 Alt+F2からgwibberを起動。 twitterを登録。 使ってみ…
今日、どうにも良い方法が見つからなかったので、大学からの帰りに本屋でプログラミングHaskell読んでライフゲームのヒントを探してみました。すると なるほど!まさになるほど、といった感じ。 現在生きているセルをタプルのリストで保持してやればいいんで…
imageJは偉大なり。 全然知らなかったのですが、画像データをテキストデータにして保存したり、テキストデータから画像をおこしたりできるのです!! 早速、昔作った画像をいじってみましょう これが元データ imageJで取り込んで、Text imageにして保存。ソ…
現在、 この本を参考にandroidでいそいそとGUIアプリを製作しています。 しかし..........javaがね..... OOPはC++で学んだし、文法も似ているから理解できないなんてことはないんですが。 なんだこの冗長な名前達。 Eclipseがない状態で開発なんて出来るんで…
線形合同法による疑似乱数を作って遊んでたら面白いものができた。 linearRand :: Integral a => a -> a linearRand x = (456*x+759) `mod` 24 何を渡しても 15 が返ってくる笑 定数w 値が1違うだけで全然違いますね rand_list :: Integral a => [a] rand_l…
(?) :: (Ord a,Num a) => (a,a) -> Bool (?) (x,y) = 1 > x^2 + y^2 pi' :: Fractional a => a pi' = 4.0*fromIntegral (length $ filter (?) dots) / fromIntegral (length dots) dots :: (Enum a,Fractional a) => [(a,a)] dots = [(x,y) | x <- [0.01,0.0…
さて、では、時間測定も出来るようになったことだし、クイックソートを比較してみます。 因みに、渡すデータは、[1000,999..0]で実験。qsort :: 0.3070175s qsort' :: 0.1530088sおや、filter関数使用の方が早いのか?統計をとってみます。 5回試行 qsort ::…
下のように、クイックソートの実行時間を調べためのrecordTime関数を定義。 qsortはリスト内包表記、 Qsortはfilter関数を使った見易い定義によるもの。 この二つで果たして実行時間は変わるのか! と思ってやってみたけれど、どれも結果は 0s..... 比較でき…
今日大学の図書館で午前中書籍を物色していたら。 Arrayモジュールなるものがあることを知る。 むしろ今まで知らなかったのがショックだが....Haskellでの配列表現が可能です。 こ、これは! これで多次元配列を実現すればダイクストラも出来るのでは!!第1…
何か作らないと、と思いつつ、でもGUIはしんどい。 何かないかなあと思ったときに、ライフゲームを思いついた Haskellでの多重配列の良い扱い方がわからないので、とりあえずC++で。 長くなってしまった。 オブジェクトにしてるけど、jの扱いなど、安全性も…
F#に慣れていきましょう。 というわけで・ project euler 第一問 let euler1 x = if x%3 = 0 || x%5=0 then x else 0 let answer = List.sum [for i in [1..999] -> euler1 i] answer |> printfn "%A" 答えは、233168. あってますかね? では無名関数を使っ…
今日はMicrosoftの提供する関数型言語、F#に触る!というわけで、win7を起動して導入。 どのように導入したらよいかわからなかったので、他のサイトを参考にして進めさせていただきました。ttp://winterradish.web.fc2.com/10/50compiler.html をみながら。 …
Haskellでそろそろ役に立ちそうなものを作ってみたい 何がいいかな。 と考えたとき、一番先に思いついたのがファイル圧縮。 画像ファイル、BMPを圧縮するようなものを作るのはどうだろう、と考える。 やはり可逆性が大事なので、有名な圧縮技法にはどのよう…
今まで実はHaskellにおいてinstance宣言を使ったことが無かったのでどういうものなのかよく知らなかった。 なので調べてみることに。身近な実例を探すと、リストモナドの定義があった。 instance Monad [] where xs >>= f = concatMap f xs return x = [x] …
モナドについて、今までStateモナドとGet,ついでにいえばApplicative程度しか使ったことがないので、その他のモナドも、 ttp://www.sampou.org/haskell/a-a-monads/html/ を参考に勉強していくことにする。 というわけで、まずは Identityモナド newtype Ide…
ttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0502 にある問題。 本来は、連続して入力を受け付けるのですが、それは愛嬌。リストだけでも解けるけれど、Stateモナドの練習がてら。 import Control.Monad.State type PlayState = ([Int],Int) t…
部分適用は、カリー化によって可能となる。 では、カリー化とは。 すべての関数は一引数の関数として扱うこと。 f :: Num a => a -> a -> a と定義された関数があるとき、fは2引数の関数である。 これに、例えば Numクラスに属する型の値 x を適用すると、(…
Haskellで参加出来ると聞いて。 今日21時からコンテストがあるらしく、寄席前日にも関わらず登録して挑戦してみました。 ....だめだ。 Aしか解けなかった。 いつも思うけど、私の集中力は90分が限度。 Eは、C++使えばまだいいところまでは書けたかなと言う…
ttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0501 の問題。 toTouple :: [String]-> (String,String) toTouple (a:b:_) =(a,b) trans :: Int -> String -> Char -> String trans n cs c = case lookup [c] (maketable n cs) of Just a -> a No…
Pythonで今日はクラスの勉強。とりあえず、リストまわりの関数群を集めたクラスを作ろうかと思って、リストクラスを作ることに。 単純に、リストを表示させる。 class list: def __init__(self,l): self.l = l def show(self): print self.l if __name__ == …
フィボナッチ数列 def fibo(x): if(x <= 1): return [1] list = [1,1] while(len(list) < x): list.append( list[len(list)-2] + list[len(list)-1] ) return list 完全数 def perf_n(x): sum = 0 for i in xrange(1,x,1): if(x%i==0): sum += i return (sum…
AOJなるものがあるらしく。 まずは簡単なものから解いてみることに。 解答の提出方法とかわからないし、出力の形式整えるの邪魔くさいので、ちゃんとした正答かどうかなんて知りません笑 Haskellで、 ttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?…
合宿や小豆島旅行の記事を書かないといけないなあと思いつつ、なかなかPCと向かい合う時間さえとれない今日この頃。 Pythonの環境を整えるかあ、と思う。 早速windows7を立ち上げる。 インストール方法を調べてみるけれど、なんか段々面倒になってくる..... …