wvogel日記

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

2011-08-01から1ヶ月間の記事一覧

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勉強して検索エンジンを作ろうかと企んだりしているわけですが。そうだ、ファイル検索作ろう! と思い立つ。 調べて…

suffix array(2)

結構前に書いた、suffix_arrayの記事の続き。 文字列とその部分文字列を入力して、 部分文字列が出現する位置を列挙するということで、以前書いた関数をそのまま組み立てるだけで出来ちゃう。 import Data.List maketouple :: Int -> [String]->[(String , I…

Aida

今日は劇団四季のアイーダを観てきました 午前中、紀国屋で小説を買い、ゲーム製作の参考になりそうな本を物色。 それからヨドバシカメラに行って、最近のスマートフォンに触れて遊ぶ。 12時に待ち合わせていたのでホームに戻り、目玉娘を発見。 迷いながら…

勉強会

今日はHaskell勉強会をやってきました!11時に大学で待ち合わせ、北海道移住計画の前段階打ち合わせを着々と進める。 .....あれ、プレゼンの復習するはずじゃ? 12時になったので、食堂にいきランチ。 久しぶりに学食使った。 ハンバーグとお米と大学芋。 そ…

password

Haskellで何か書きたいなあ、と思ってふと思いついた。 パスワードの管理ソフトが欲しいなあ、と。 結構パスワードがあちこちばらばらになりがちで、一括して管理できるようなものが欲しいなと前々から思っていたんです。 で、パスワードの生成なんかもやっ…

状態処理

PC甲子園、2010年本戦の問題第3問で、セグメント数字表示機への指示の遷移を出力せよ、みたいな問題がありました。 詳しくは公式HPのPDF参照。 これは、Stateモナド使って解けるなーと思い。 モナドやろうやろうと思いつつ、なかなか題材がなかったので、こ…

hit and blow

hit and blowをHaskellで書いてみた。 なんて素直な書き方なんでしょう import Control.Monad main = do cs <- getContents forM_ (map (hit_blow 0 (0,0). words) $ lines cs) print' print' :: (Int,Int) -> IO() print' (h,b) = putStrLn $ (show h)++" "…

お盆休みですね お盆休みなので 今日は墓参り。 朝から両親とともに墓参り! まず母方の方の墓を綺麗にしてから、近くにあるパスタ屋さんでランチ 祖父母宅を訪れまったり。 小豆島旅行のお小遣いをもらった!! やった! それから父方の墓をお参り、父方の…

課題

今まで Applicative、Parsec、State、Get と、色々なモナドに触れてきたが(Applicativeはちょっと違うね)、 私が感じた、モナドに対する感想。 巷で言うほど難しくない。 モナドは、下に書いた記事の例では、 入力から一文字ずつ読み込みその値に応じて処…

素麺party

10時半起床!! ......あれ?11時すぎに家でる予定なのに。 起床。 すいかを食べて家を出て、ケンピハウスに向かう。 12時を過ぎたあたりから、世紀末と手乗り鳥が来て、居合人が来て、鮫と金とムカが到着!! メンバが揃ったところで買出しリストを作成。 …

流星群

昨日の日記。 昨日は流星群をみてきました!! 夕方まで旅行の準備したりビデオ消化したりHaskellしたりして、 時刻は21時頃。 そろそろいい時間になってきたので着物を詰めたり新聞紙探したり、明日の準備も含めて荷物を詰める。 22時半に出発。 こんな時間…

Ubuntu and install Haskell-platform

windows7のデスクトップPCに、Ubuntuをbootする! ライブCDは以前、現在はFedoraマシンとなっているPCに導入するつもりで一度作成していたので、それを用いる。 もっとも、今は11.04の新しいversionがでているそうですが。 指示にしたがい選択していくだけで…

PC甲子園

パソコン甲子園2010年度予選問題第四問を Haskellで。 なんてことはないですね ice = repeat "" f :: [String] -> [Int] -> String f ds [] = unlines $ map (\str -> if str == "" then "-" else str) ds f ds (x:xs) = f recompose xs where recompose = t…

Goldbach

f :: Integral a => a -> a f n = sum $ map (check.(\a -> [a , n-a])) [2..div n 2] check :: Integral a => [a] -> a check ab = case all prime ab of True -> 1 False -> 0 prime :: Integral a => a -> Bool prime 1 = False prime 2 = True prime n =…

文字

Dijkstra とか suffix array をみたら、やっぱりHaskellは文字列操作が強力だなあと思う。 リストが標準であるし、sortなどの便利な関数も沢山ある。 すると、 あ、KUPCのA問題、Haskellなら簡単に書けるなあと思って書いてみた。 文字列が一行で与えられる…

suffix array

Haskellから、googleのような検索エンジンにアクセスするにはどうしたらいいんだろうと思って調べていたら、 suffix array というものに遭遇。 よくわかんないけど、とりあえずこんなもんかなと思って書いてみた import Data.List maketouple :: Int -> [Str…

手法

うーん。 なんだかなあ。 Haskellには (!!)関数があるので、これを入れ子にして、C++でやったようなDijkstra法を実現することは可能です。 可能ですが、なんだかなー...... 汚い。 というか、普通に手続き型で書くのと何の変化もなくなってしまう。 入力を受…

Dijkstra C++

ふいー 本読んだりして色々調べたけど、理論はわかってるわけだから、やっぱり自分で考えた方が早いや!! と思って書いてみた。少し長いので一番最後に載せる。 KUPCの確かB問題だったかな。 H行W列の0〜9の数字列が与えられ、 右方向または下方向にしか進…