wvogel日記

自分用の技術備忘録が多めです.

2011-01-01から1年間の記事一覧

QuickSort比較

さて、では、時間測定も出来るようになったことだし、クイックソートを比較してみます。 因みに、渡すデータは、[1000,999..0]で実験。qsort :: 0.3070175s qsort' :: 0.1530088sおや、filter関数使用の方が早いのか?統計をとってみます。 5回試行 qsort ::…

時間測定

下のように、クイックソートの実行時間を調べためのrecordTime関数を定義。 qsortはリスト内包表記、 Qsortはfilter関数を使った見易い定義によるもの。 この二つで果たして実行時間は変わるのか! と思ってやってみたけれど、どれも結果は 0s..... 比較でき…

Array

今日大学の図書館で午前中書籍を物色していたら。 Arrayモジュールなるものがあることを知る。 むしろ今まで知らなかったのがショックだが....Haskellでの配列表現が可能です。 こ、これは! これで多次元配列を実現すればダイクストラも出来るのでは!!第1…

Life Game

何か作らないと、と思いつつ、でもGUIはしんどい。 何かないかなあと思ったときに、ライフゲームを思いついた Haskellでの多重配列の良い扱い方がわからないので、とりあえずC++で。 長くなってしまった。 オブジェクトにしてるけど、jの扱いなど、安全性も…

F#に慣れる

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. あってますかね? では無名関数を使っ…

F#入門

今日はMicrosoftの提供する関数型言語、F#に触る!というわけで、win7を起動して導入。 どのように導入したらよいかわからなかったので、他のサイトを参考にして進めさせていただきました。ttp://winterradish.web.fc2.com/10/50compiler.html をみながら。 …

圧縮

Haskellでそろそろ役に立ちそうなものを作ってみたい 何がいいかな。 と考えたとき、一番先に思いついたのがファイル圧縮。 画像ファイル、BMPを圧縮するようなものを作るのはどうだろう、と考える。 やはり可逆性が大事なので、有名な圧縮技法にはどのよう…

instance宣言

今まで実はHaskellにおいてinstance宣言を使ったことが無かったのでどういうものなのかよく知らなかった。 なので調べてみることに。身近な実例を探すと、リストモナドの定義があった。 instance Monad [] where xs >>= f = concatMap f xs return x = [x] …

Identity

モナドについて、今までStateモナドとGet,ついでにいえばApplicative程度しか使ったことがないので、その他のモナドも、 ttp://www.sampou.org/haskell/a-a-monads/html/ を参考に勉強していくことにする。 というわけで、まずは Identityモナド newtype Ide…

AOJ try!(3)

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 を適用すると、(…

CodeForces

Haskellで参加出来ると聞いて。 今日21時からコンテストがあるらしく、寄席前日にも関わらず登録して挑戦してみました。 ....だめだ。 Aしか解けなかった。 いつも思うけど、私の集中力は90分が限度。 Eは、C++使えばまだいいところまでは書けたかなと言う…

AOJ try!(2)

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 test

Pythonで今日はクラスの勉強。とりあえず、リストまわりの関数群を集めたクラスを作ろうかと思って、リストクラスを作ることに。 単純に、リストを表示させる。 class list: def __init__(self,l): self.l = l def show(self): print self.l if __name__ == …

Python Learning

フィボナッチ数列 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 try!

AOJなるものがあるらしく。 まずは簡単なものから解いてみることに。 解答の提出方法とかわからないし、出力の形式整えるの邪魔くさいので、ちゃんとした正答かどうかなんて知りません笑 Haskellで、 ttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?…

Python test

合宿や小豆島旅行の記事を書かないといけないなあと思いつつ、なかなかPCと向かい合う時間さえとれない今日この頃。 Pythonの環境を整えるかあ、と思う。 早速windows7を立ち上げる。 インストール方法を調べてみるけれど、なんか段々面倒になってくる..... …

quickrun

旅行、そして合宿から帰って来ました。 なので早速、作業。 vimに、「quickrun」なるプラグインを入れてみますttps://github.com/thinca/vim-quickrun から、最新版のものをダウンロードします。 私の時は、5.0。 そしてこいつを解凍し、ターミナル上でコマ…

List

昨晩リストモナドの勉強をしていたんですが、なぜあのときに気づかなかったんだろう。 朝起きたら気づいた。 昨日書いた、電車の切符問題の、演算子列挙について。 今のままでは、"+-*"がそれぞれ1度ずつでてくる、計6通りしか網羅できなかったけれど、リス…

train number.....(0)

明日から一週間家を離れるのでブログの更新が滞ってしまう。 なので、その前になにか書こうかと思ったけど、ちょっと面倒な問題にぶつかってしまった..... タイトルのとおり、 電車乗るときに買う切符に印字されている4桁の数字、 あれから、10の数字を作れ…

train number(1)

とりあえず、動作までを確認したもの。judge "1234" のように、judge関数に、切符の値を渡してやればjudgeしてくれます。あとは、演算子の組み合わせを全部網羅するようにしてやれば完成です。 んー、どうやろう。 oは、operatorのo,vは、valueのvです。 mod…

scanf

Haskellで使えるようなscanf関数が欲しいなあと思っていた 競技プログラミングの問題を解いていると、要素として受け取る数を指定し、その数だけ値を読み込む、というのが結構ある。 なので、簡易的なものを書いてみた module Scan where scanf :: String ->…

花火大会

午前中、朝食を食べてから11時くらいに家をでて大学に。 そこで、本を探す。 デザインパターンの本と数学の本借りて部室に。 ところが人がいない! ストパーをあててぺったんこになったJ先輩らがいたけど、すぐにポケモン映画に旅立ってしまわれた 山先輩と…

caesar

シーザー暗号もどきもう一度いいます。シーザー暗号もどきです(復号不可)。 確かシーザー暗号は、文字を数文字ずらすだけだったはずだけど、無駄に掛け算とかしてみた。 あと、残りの文字列長に依存させると面白いかも、と思ったり。復号も、 そんなに難し…

fox number

KUPCの第何問なったかな? 忘れたけれど。 二つの数A、Bが入力される。(A>B) A-B〜A+Bの範囲において、 素因数分解したときに、a^a1*b^b1*c^c1*... と表現できるが、このとき、すべての因数について、 a<b<c<... , a1>b1>c1... を満たす数の個数を答えよというような問題</b<c<...>…

java

javaがちゃんと動くかどうか、vimとターミナルでお試し。 import java.io.*; class Test{ public static void main(String args[]){ System.out.println("This is test program\n"); } } 結果 $ java Test This is test programただいまandroid SDKのインス…

睡魔

今日は眠いですね 2時に就寝したのですが、後輩のリハがあるので早く起きなければ、寝坊できない! と思って、妹と親に頼んで、8時に起こしてもらう。 8時半には家を出ないと間に合わない..... 怠さと睡魔を振り払い、朝食も食べずにシャワーだけ浴びて出発…

Directory(2)

コメントをいただき、ファイル削除の方法がわかりましたので、 さっそく、コマンドオプションでrecursiveが使えるように、rmプログラムを修正。 自分で高階関数作ったのは初めてかも。 import Directory import System.Environment main = do command <- get…

Eclipse

Fedoraに、android開発のため、java環境を入れよう。という計画。 必要なパッケージだけインストールすればいいんですけど、なんか.......取捨選択が面倒で..... sudo yum install eclipseで丸投げ(ええええええ) 無駄なものがいっぱい入ってしまうので、…

Directory

password管理をHaskellで書いてから、やっぱり実際に使えそうなもの書くのが一番楽しいなあー、と思った私。なので、今頑張ってsuffix array勉強して検索エンジンを作ろうかと企んだりしているわけですが。そうだ、ファイル検索作ろう! と思い立つ。 調べて…