Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

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

川遊び&魚のつかみ取り大会

長女の通う小学校の行事「川遊び&魚のつかみ取り大会」に参加。子どもがニジマスを6匹つかまえました。

GAでナップサック問題

『マッチ箱の脳(AI)―使える人工知能のお話』を読んでいるのですが、分かりやすくて面白い本です。遺伝的アルゴリズム(GA)という言葉は聞いたことがあるのですが、本書を読んで概要は理解できたような気がします(多分)…。本当にGAで問題が解けるのか確かめて…

郵便番号とGoogle Maps

今日は、気分を変えてJavaScriptに取り組んでみました。 http://www.geocities.jp/maehrm/zip_map.html テキストフィールドに郵便番号7桁か住所の一部を入力し、ボタンをクリックすると 郵便番号と住所の表示 http://groovetechnology.co.jp/webservice/zips…

ファイルからの入力と標準入力

Rubyで、ファイルからの入力と標準入力について、ちょっとした疑問点が出てきました。 以下のような、サンプル(hoge.rb)において、 # ファイルからの読み込み open(ARGV[0]) do |f| puts f.read end # 標準入力 print "Input> " str = gets puts str 実行す…

coerce規約

id:rahaema:20080708, id:rahaema:20080709 でcoerce規約について書きましたが、まだまだ理解が不十分なので引き続き取り組んでみました。理解をするために、何か作ろうと思ったのですが、いい題材が思い浮かばず…。結局、「帯分数(mixed number)」を取り扱…

テイラー展開

『数学ガール (数学ガールシリーズ 1)』のp231では「極限としての関数の姿」と題してsin関数のテイラー展開を扱っています。テイラー展開の無限級数を有限個だけ項を取り出して部分和を求めていくと、sin関数に近付いて行く様子が図を交えて分かりやすく解説…

ダイクストラ法

ダイクストラ法を作ってみました。 グラフは、ラベルつき隣接行列にしたのですが、辺が存在しないところを、nilで表現したのがまずかったです。条件判断などが繁雑になってしまいました。threadの学習を兼ねて使ってみました。 dijkstra.rb class Dijkstra a…

コッホ曲線

cairo:2次元画像描画ライブラリを読んでみました。丁寧な説明がなされているので非常に分かりやすかったです。読んだだけでは面白くないので、なんか題材はないかと考えたのですが、あんまりデザインのセンスがないので良い題材が思い浮かびません…。 とりあ…

初めてのRuby2

昨日(id:rahaema:20080708)、 3 + Complex(5, 6)のすごさ(coerce規約) と書いたのですが、 Complex(5, 6) + 3 だったら添付ライブラリであるComplexクラスの、+メソッドでうまくやってるんだろうと思えるのですが、やっぱり、3 + Complex(5, 6)と書けるのは…

初めてのRuby

『初めてのRuby』を読んでみました。 Object#enum_for Integer#[nth] 3 + Complex(5, 6)のすごさ(coerce規約) to_strメソッド String#% ダックタイピング をはじめ、いろいろと勉強になりました。例8-12を使って、 class Duration def initialize(since, til…

正規表現の実現3

id:rahaema:20080702, id:rahaema:20080703 の続きです。 id:rahaema:20080702 では、「正規表現をパースして構文木を作る」。id:rahaema:20080703 では、「構文木からNFAを作成する」まででしたが、ようやく、「NFAからDFAを作成する」までたどり着くことが…

正規表現の実現2

昨日(id:rahaema:20080702)の続きです。 昨日は、「正規表現をパースして構文木を作る」まででしたが、今日は、「構文木からNFAを作成する」までを取り組んでみました。以下がRubyで書いたソースですが、場当たり的にクラスを作ったりしていて、ちょっと…で…

正規表現の実現

学生時代、オートマトンとかNFAとかDFAとか習った記憶がありますが、全く身についていないので取り組んでみました。参考にしたのは、学生時代に買った『Cプログラマのためのアルゴリズムとデータ構造〈Part2〉 (SOFTBANK BOOKS)』です。本棚から引っ張り出し…

読書の記録

『すべては音楽から生まれる (PHP新書)』を読みました。印象に残ったのは、モーツァルトが、作曲について、そして自分自身について語った言葉でした。亡くなる3年前だそうです。 長年にわたって、ぼくほど作曲に長い時間と膨大な思考を注いできた人は他に一…

読書の記録

『もっとも美しい数学 ゲーム理論』を読みました。

ナップサック問題

今日は、RubyのStructクラスの練習をかねてナップサック問題に取り組んでみました。品物の大きさと価値は、以下のようになっています。 品 物 0 1 2 3 4 大きさ 2 3 5 7 9 価 値 2 4 7 11 14 knapsack.rb Item = Struct.new(:weight, :value) def knapsack(i…

検索システム2

id:rahaema:20080623に引き続き、「転置インデックスによる検索システムを作ってみよう!」を参考に、学習。学習のポイントは、 QDBMの練習 Marshalの練習 です。index.rb require 'depot' num = 0 idx = Hash.new{|h, key| h[key] = [] } while line = gets…

Picnicクラス

トライステート社のPICNICをJavaで制御するPicnic.javaを http://www.geocities.jp/maehrm/picnic.html で公開しているのですが,getADC()について返り値がときどきおかしいとのご指摘と修正をいただきました。 public int getADC(String ch,byte wait){ byt…

検索システム

今日は、「転置インデックスによる検索システムを作ってみよう!」を参考に、学習。 http://chalow.net/2007-11-26-5.html 検索システムというと難しい印象がありましたが、上記サイトは簡単なサンプルで解説がされており非常に参考になりました。サンプルは…

JSONなど

同僚の先生方とJavaScriptについて学習しているので,今日は,JavaScriptに取り組んでみました。 『JavaScriptプログラミング入門 第2版』という本で学習しているのですが,その中にJSONについて書かれていたので,理解を深めるために,サンプルを作ってみま…

昨日の続き…

昨日に引き続き、「Javaでコンパイラの基礎を理解する*1」に取り組みました。svm1c.rb class Compiler IADD = 96 ISUB = 100 IMUL = 104 IDIV = 108 BIPUSH = 16 PRINT = -48 def compile(filename) scanner = Scanner.new(filename) tokenList = scanner.cr…

仮想スタックマシンの製作

今日は、「Javaでコンパイラの基礎を理解する*1」を読んでみました。 非常に簡単な例で解説されていて分かりやすいです。 読んだだけでは、身についているか怪しいので、Rubyで書いてみました。 今日は、仮想スタックマシンを作っただけです。svm1.rb class …

じっくり勉強

今まで、何種類かのプログラム言語について学んだ(身についてませんが)のですが、最近は、コンパイラとかに興味が湧いてきました。学生時代にも、習った覚えはあるのですが、当時は、「やらされる勉強」かつ「あんまり興味がない」ということで、ほとんど理…

mfcalc

http://d.hatena.ne.jp/rahaema/20080611 でつまずいていた http://www.mi.s.osakafu-u.ac.jp/~kada/course-kitami/j3_03/bison.pdf の「2.5 練習問題」(3)に再チャレンジ。 (3)初期化されていない変数について、値を書き込むのではなく、値を使おうとすると…

mod_ruby

mod_rubyをインストールしてみました。 Debianの/etc/apache2/のディレクトリ構成は整理されていて分かりやすいです。こんな感じで設定しました。/etc/apache2/mods-available/ruby.confを以下のように作成し、 <IfModule mod_ruby.c> RubyRequire apache/ruby-run <Location /home/*/public_html/cgi-bin> SetHandler ru</location></ifmodule>…

mfcalc

昨日に引き続き、bisonを学習。 http://www.mi.s.osakafu-u.ac.jp/~kada/course-kitami/j3_03/bison.pdf の「2.5 練習問題」をやってみました。(1),(2)は解けたのですが、 (3)初期化されていない変数について、値を書き込むのではなく、値を使おうとするとエ…

逆ポーランド記法電卓

今日は、趣を変えてbisonをやってみました。学生時代にやったことはあるのですが、すっかり忘れてしまっています。http://www.mi.s.osakafu-u.ac.jp/~kada/course-kitami/j3_03/bison.pdf を参考に、逆ポーランド記法電卓を作成しました。rpcalc.y /* 逆ポー…

mecab-ruby

mecab-rubyのインストール $ ruby extconf.rb $ make % sudo make installmecab-rubyの今日時点の最新バージョンは、0.97で、最初、これをインストールしようと思ったのですが、mecabのバージョンとそろえる必要があるみたいです。 mmasa@debian:~/$ mecab -…