wvogel日記

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

2011-12-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など…