wvogel日記

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

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

冬期休暇

昨日から2週間弱の短い冬期休暇に入りました 明日から北海道に旅行です。 準備も先ほど終わり、明日を待つのみ。 出かける前に何か軽いコーディングをしようと思い、TopCoderに慣れてみることにした。 練習場のような場所があり、ある程度の難易度の問題が出…

wxHaskell レイアウト覚書

昨日からしばらくwxHaskellを触っています。最初、GUIパーツの配置方法がわからずに悩んでいたので、 ここに覚え書き。パーツはそれぞれ(ボタンやエディットボックスなど)、 IO型に包まれて返されますなので、 btn <- button p [text := "ほげ" , on comma…

wxHaskell入門

この間、OpenGLを使った記事を書きましたが、 wxHaskellでは、よく見るようなGUIパーツを簡単に使う事が出来るようです。 しかし、このFedoraに入れようとすると失敗してしまい、 以来ずっとOpenGLいじくり回していました。 HaskellWikiをちゃんと読んでみる…

ByteString

一つ前の記事で書いた方法ではタイムオーバーになってしまう。func_hsさんの記事を読んで、 ByteStringを使う方法があることを思い出す しかし、初めて使うので思考錯誤の末、 あまり意味がないように感じるけど、次のようなものを書いてみた import Data.Li…

言語選択

一昨日codeforcesで開催された問題を昨日解いていたのですが。 Haskellで書いたものはタイムオーバーになってしまいました。問題はこちら模範解答?のようなものがcodeforcesに挙げられていたので読んでみた すると、私が考えた通り、aの要素でソートしてか…

parse JSON

何かをまた新しく作り始めたく、 スケジュールアプリでも作ろうかと思い立つ。 スケジュールなので、データを保存する必要があります。 そして、保存したデータを読み出す必要がある。 パーサが要る。そういえば以前、Peggyなるパーサがリリースされていまし…

GUI入門

DXライブラリとHSPでしか まともにGUIアプリを作成したことのない私が、 HaskellでOpenGLをいじる、不定期連載。 OpenGLがそもそもどういうものなのか、そこから知る必要がありましたが、その際、次の本が大変参考になったので紹介しておきます。 「OpenGL入…

多次元配列問題 with Data.Array

Haskellは、Data.Arrayモジュールを用いてデータを配列のように扱うことができる。 が、書き換えはコストが高いために苦手。 だからデータ参照などにのみ使用した方が良い。 ならばそうしましょう。Data.Arrayを利用して、多次元配列問題を解く! 手始めには…

Data.Array

以前に一度Data.Arrayについて記事を書いたことがあったが、 その時は基本的な関数について触れただけで終わった気がする。今回は、二次元配列を触ってみた。とりあえず、1桁の数で作られたテーブルから値を読み取る。ソースコードは以下のとおり import Dat…

brainf*ck

試験勉強の合間、Haskellでちょっと遊んでみようと思い、40分ほど遊んでみよう。 というわけで、簡便なbrainf*ckを組んでみた。 []の複数仕様には対応していないし、 外部からの入力も一桁の数値だけですが。 解析と実行が同時並行なので、 タプル形式で読み…

Lagrange多項式補間(2次)

数値解析の講義で扱った内容。 今まで、3点から二次多項式を求める場合、 Gauss-Jordan法を用いて係数を決定して、 導かれた多項式に対して 値を適用することで値を出していましたが、 そんな面倒なことはしなくてもいいようです。とりあえず、簡単のため、…

ViewPatterns & FFI (export)

今日はHaskellでの GHC拡張の一つ、ViewPatternを使ってみました。 更に、それをC言語から利用してみます。まずはファイルの先頭に以下の拡張宣言を {-# LANGUAGE ViewPatterns #-} これでViewPatternsを利用可能になりました。ぱっとは面白い関数が思いつか…

IDEdroid

前々から、androidで使えるGHCとかないのかな.... と思ってたけど。 別にそんなものなくてもなんとかなるんですね IDEdroidというアプリの紹介。 公式ページはこちら 見たらわかるとおり、対応言語は非常に多い。 ただ、android上でコンパイル・実行するわけ…

3問

今日はcodeforcesの問題を夕方と帰宅後、合わせて3問解きました。 そのうちの一問、こちら 捻ったようなアルゴリズムも不要で、 ちゃんと書けばちゃんと動いてくれる問題。 問題の背景を考えるとちょっと面白かったです。 10進数→2進数、 2進数→10進数の関数…

time over

問題はこちら単純なアルゴリズムはすぐに完成しましたが、 残念なことに、以下のコードではタイムオーバー.... どうするのがよいでしょうか。 group関数で一まとめにしてやると早くなるのかな与えられたデータセットが100000個の-1だから... きっとこれは畳…

気分転換

久しぶりに書きます。 なんとかして時間をつくらないと、何にも手をつけられない状態です。 明日は解析学の試験ですが、 一段落したのでcodeforcesの問題を解いてみました問題はこちら単純に、combinationを使ってやればいけそうです。 combinator::nCkなど…

暗黒軍団

暗黒ほいほい こんな単語を聞いてもさっぱり何やらと思われそうです。 今、この団体で、数人で集まってゲームを作っております。 興味のある方、こちらからどうぞ そしてこの団体のwebサイトの製作をここ暫くずっと行っていました。 一つ前の記事にも書きま…

web製作

この数日間忙しかったというか眠れなかったというか。 とあるサークルの作業の一環としてHPを作っていました。 ほんのちょっぴり一段落したので、自戒としてまとめ。 CSS・JavaScript・HTMLで製作していたわけですが。 一番難しいのはHTMLだと思いました。 C…

Accepted!

昨日考えていた問題を解くことが出来ました!問題はこちら両隣との差が1となるように円を作れ、という問題 差が1で且つ、一番小さい値の両隣は常に自身より1大きい値だよなあ、と、ここまでは気づいたのですが、 どうやったらそれを落とし込めるかでつまづい…

木?全探索?

codeforcesのこの問題どうやったら解けるかな、と考えたときに、円を作るんだから、前から順番に、一番最初に見つかった要素を積んでいっても解けるんじゃないか? と思った。 main = do n <- getLine ls <- getLine putStrLn $ judge $ arrange ([head $ li…

Fedora16

OSをFedora16にアップデートしました!定期的に通知がくる、 パッケージからのインストールではOSのアップデートはできなかったので今日時間をとってアップデートすることにしました 何時間かかったんだよ..... 先ほどの記事を書いた頃から開始したのでざっ…

IORef

ページビューが、今ちょうど66666!!状態保存(変数保存)の方法が、Stateモナド以外にあると聞いて。 IORefで行えるようです。 いろんなサイトみてたらちょくちょく見かけたので、 どのようなものか、触ってみた import Data.IORef main = do n <- newIORe…

GUI

ここ一カ月は、 HaskellのGUIまわりを触りつづけようと思ってます。 半年くらい前からHaskellでノベルゲームエンジンを作る! と思っているけれど、やはりGUIってどうしても面倒なイメージがあり、腰が重い。 まずね、日本語表示ができないです これが一番の…

数値計算(べき乗法)

Haskellだとこの手の繰り返し処理はとても簡単ですね。 明日の講義の演習課題として出されていたのですが、 答えがあっているかどうかの確認用に書きました。 以下の例では、 手計算では6回ほど繰り返さないと答えが出力されませんね... import Control.Mona…

Monadius

今、HaskellでOpenGLを使って色々実験しているのですが。GUIを使ったものとして有名なゲーム、 Monadius があろうことを思い出した。 なので早速ダウンロードして遊んでみた 面白い 純粋にこういうゲーム楽しいです笑 参考になる点ですね、はい。 そのために…

組み合わせ

こちらも、 「プログラミングコンテストチャレンジブック」にあった問題です。 整数nと、いくつかの数字列が与えられたときに、 与えられた数字列から重複を許して4つ値を取り出したとき、 その和がnになるかの姓があるかどうかという問題がありますまずは素…

練習

今日は、 「プログラミングコンテストチャレンジブック」で取り扱っているPOJの問題をHaskellで解いてみました。問題はこちら import Data.List main = do nls <- getLine print $ findAnswer (ls nls) [] where ls = map read.tail.words findAnswer :: Int…

日記

今日は久々に日記でも書いてみようかなどと思ってみたり そもそも当初、このブログは日記として始めたのですが、 その年の夏ごろにHaskellを知り、少しずつその色を濃くし、気がついたらHaskellなどのプログラミング関連の行動記録になってしまった笑 用途別…

何故.....codeforces(解決済)

Haskellで今日も、簡単なものを解いてみた。 が、なぜかruntime errorとかで通らない手元でやるとどれも一瞬で答え出るし、環境もそれほどよくはないから問題はないはずなんだけど問題はこちら import Control.Monad main = do n <- getContents forM_ (map …

codeforces修正

二つ前の記事で、 解いたと思っていた問題。 今日通してみると、誤っていることが判明しました。 なので素直に書きなおしてみた。 main = do nab <- getLine let (n:a:b:_) = map read $ words nab print $ length $ filter ((==n-1).f) [(x,y) | x <- [a..n…