LZW 圧縮アルゴリズム

gif を生成するクラスを自作するために、今回は LZW 圧縮アルゴリズムの勉強。 LZW アルゴリズムは辞書式圧縮であり、gif や tiff の圧縮に利用されています。 LZW アルゴリズムの概要 LZW 圧縮アルゴリズムは次の手順で実行されます。  手順0: 文字(数字)列に現れる文字の種類の数だけ、それぞれ辞書に登録しておく。  (文字列が 0~255 の範囲であれば、辞書は 256 ペー…

続きを読む

最小サイズのgif画像とアニメーションgif

Java で gif アニメーションを作りたいと思い、色々と調べる過程で 最小サイズの gif 画像や gif アニメーションを作ってみたので、そのメモ。 以前はJavaのクラスでgifを書き出していましたが、 今回は gif の仕様を調べて、バイナリ出力させています。 LZW 圧縮アルゴリズムのコードを書くのはもう少し時間がかかりそうですが、 ヘッダや大まかな構造は次のページを参考になんとなく理…

続きを読む

コインを20000回投げて11000回以上表が出る確率

以前こちらで考察したコイン投げ試行。 もう3年以上前という現実に、切なくなります。 このような(自分にとって)直感的でない確率の問題は好きなので、もう一度考察してみます。 コインを2000回投げて1100回以上表が出る確率 まずは前回と同じ、2000回投げて1100回以上表が出る確率です。 初めてこの問題を考えたとき、直感的にはそこそこの確率で起こりそうに感じましたが、 実際には0.00038%と…

続きを読む

コンプトン効果の導出 もう一度

復習を兼ねて、以前導出したコンプトン効果の式の導出、証明をもう一度。 コンプトン効果とは、X線などの電磁波を物質に照射したとき、 電磁波の波長が長くなり、方向が変化する現象を指します(下図参照)。 波長が長くなるのは、衝突の際に電磁波のエネルギーの一部が失われるためです。 また、入射線波長$\lambda$と散乱線波長$\lambda’$の間には次の関係が成り立ちます。 \begin{…

続きを読む