EeBlog(テクニカルブログ) :アルゴリズム

数学の問題でプログラミングの腕試し

プログラミングで解く数学の問題を集めた「Project Euler」というサイトがあります。
Project Euler     http://projecteuler.net/
上記サイトは英語ですが、問題を日本語訳しているサイトもあります。
Project Euler – PukiWiki      http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler
問題を解いて正解すると、その問題のフォーラムを閲覧できるようになり、他の人とコードを見せあったり議論したりできるようになっています。 (さらに…)

ペアノの公理

論理だけで自然数という概念を定義したペアノの公理というものがあります。ペアノの公理によると自然数はある5つの条件を満たす、と定義されるそうです。ペアノの公理がどのようなものかは下記リンク先のWikipediaのページを見てください。
ペアノの公理 – Wikipedia http://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%A2%E3%83%8E%E3%81%AE%E5%85%AC%E7%90%86 (さらに…)

LZSS

前回はLZ77という圧縮アルゴリズムを実装してみました。今回はLZ77を改良したLZSSというアルゴリズムを実装してみます。

LZ77ではすでに処理された文字列の中に一致する部分があれば、そこを指すポインタ(長さと位置)を生成し、次にその後の一文字を出力する、ということを繰り返す形式でした。 この形式だと、すでに処理された文字列の中に一致する部分がなくても、ポインタを置かなければなりませんでした。 LZSSでは最初の1bitでその後に続くビット列がポインタであるか、文字であるかを表すように改良しています。 (さらに…)