2006-10-01から1ヶ月間の記事一覧

交差点問題

大学のアルゴリズムとデータ構造という授業で題材になってた問題。それにBGL(Boost Graph Library)で取り組んでみた。 交差点問題 左図の様な交差点がある。 全ての進路に信号が設置してある。 矢印方向にしか進むことができない。 交差する進路は同時に信号…

多倍長整数演算:繰り下がり

とりあえずレポートできたしもうこのネタは終わりにしよう。早く自分の開発に戻らねば。このところバイトと大学に追われてしまっている..orz RubyのBignumを読んでてなるほどと思ったこと。(たぶん他のどの実装も同じはず) 多倍長整数の減算をする場合は繰り…

多倍長整数演算:基数変換(続)

大体Knuthの内容が理解できた。本を返さなきゃならないのでメモっておこう。 とりあえず分かり易いように二進数十進数の変換に限定して書いとく.(他の基数でもほとんど同じ) まず進数に変換 普通の基数変換では、多倍長整数uがあった場合これを次々と10で割…

多倍長整数演算:基数変換

RubyのBignum実装を参考に実装してみた。Rubyってソースが綺麗な事で有名だけどBignumのソースは正直...うーむ読みにくい。 まぁ、速度が重要な数値回りのライブラリだし一つの変数を使いまわしたりするのは仕方ないのかもしれない。 整数環なので加算・減算…

追記:多倍長整数演算

多倍長演算の場合キャリーを考える必要があって、一桁mビットだと乗算のキャリーが最大mビットだから、普通はunsigned short型(2バイト)配列で整数値を表し計算途中はunsigned int(4バイト)型配列を使えば良い。 んで、もし基数を負数にするとしたら一桁mビ…

多倍長整数演算

レポートの2つ目の課題。 多倍長演算は結局ただの筆算なので実装は楽だろう。 でも、それじゃ自分の勉強にならないのでネタを探していた。*1 多倍長演算の実装には ビット列を符号なし整数として保持。符号情報を別に扱う。 ビット列に符号情報まで埋め込む…

アルゴリズムとデータ構造レポート

初レポート。内容は C言語でリスト構造を作れ C言語で整数環を作れ というもの。 リスト リストは以前作った事があるので、よく分かる。双方向リンクリストを実装した。 でも、来週からはSchemeを授業でやるらしいけど、LISPのリスト構造にしてみた方が良い…

Error 25: Disc Read error

ひさびさにgrub-rebootをしてノートPCを再起動したら上記のエラーが出て全てのOSが起動しなくなった。その後普通に起動してもぴくりともしない。 HDDが壊れたかと思ってびびった〜。とりあえずの対処は grubのメニュー画面で'c'を押してgrubのシェルを起動す…

ていうか、新しいものをどんどん始めてしまってどれもなかなか進まないなorz やらなきゃならない事を整理しとく。 masazo-brain/masazo-talk の開発 masazo-brain : 格子系クラスの開発中 masazo-talk : 辞書無し形態素解析のアイデアを練ってるとこ SICPを…

SICPを購入した。

計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一出版社/メーカー: ピアソンエデュケーション発売日: 2000/02メディア: 単行本購入: 35人 …

根拠のないインターフェースの実装はやめよう。

More Effective C++―最新35のプログラミング技法 (ASCII Addison Wesley Programming Series)を読んでてふと、自分のソースを見たらめちゃめちゃ汚いと思った...orz 例えば使う予定も無いのにlattice_systemなどに operator= swap デフォルトコンストラクタ …

ブレイン・ショック

アッコにおまかせ!で毎回やっているコーナー。いわゆるSlow Change。 AI開発ノートでも以前書いた事があるけど、こういう物に世の中が興味を持つようになってるのはうれしいなぁ。脳を鍛える大人のDSトレーニングもすごくよく売れてるみたい。最近自分がCha…

lattice_system::iterator

lattice_system にイテレータを提供しようと思っていて悩む。 欲しい機能は index_mapperが振るインデックスの順番に要素にアクセスする 各要素の座標値を取得できる 要素全体をトラバースする為にはvector::iteratorを使うのが最も効率的だけどこれも座標の…

Schemeの勉強を始めた

明日から大学の授業が始まる。いよいよ専門科目が始まるが、4学期はSchemeを使うらしいので軽く予習しておこうと思う。 関数型言語はemacs-lispとhaskellにちょっと触ったくらい。*1 処理系はGaucheをインストールした。 % sudo apt-get install gauche{,-de…

戻り値最適化

More Effective C++を入手した。まだ4章までしか読んでないけどやっぱこの手の本は勉強になるな〜。とりあえず、今日覚えたこと。 戻り値最適化を促進する為には無名一時オブジェクトを返せ。 例えば次のコードでは point a = b + c; operator+(b, c)を実行…