人型ピクマッチングラム 実習

このページは、3つのアルゴリズムの違いが「見える」ように設計した実習用のリンク集です。すべてのリンクは アルゴリズム名を伏せる設定(algoMask=true)で開きます。

各リンク先では、速度を「普通」または「遅い」にして比較の様子を観察してください。比較回数やシフトの幅、メッセージの違いに注目すると理解が深まります。

実習 0: ランダムな文字列

特段特徴のないランダムな文字列で、各アルゴリズムの平均的な動きを観察します。

観察ポイント: 比較回数がどれくらい似るか/違いが出るか。

実習 1: 先頭一致が多いケース

先頭が長く一致する場合、どのアルゴリズムが無駄な比較を減らせるかを観察します。

観察ポイント: 途中まで一致した後のずらし量と比較回数。

実習 2: 末尾で不一致が多いケース

末尾の1文字だけが頻繁に不一致になるケース。末尾から見るアルゴリズムの強みが出やすいです。

観察ポイント: 末尾の不一致でどれだけ大きくずらせるか。

実習 3: パターン内の繰り返しが強いケース

パターンの中に繰り返しが多いと、あるアルゴリズムが特に有利になります。

観察ポイント: 一致情報の再利用の有無。

実習 4: アルファベットが広く散らばるケース

文字の種類が多く、ばらけているケース。悪文字規則の効果が見えやすいです。

観察ポイント: 不一致時の大きなジャンプ。

実習 5: 成功位置が先頭・中盤・末尾にあるケース

見つかる位置の違いが、比較回数にどう影響するかを観察します。

観察ポイント: 見つかる位置と比較回数の関係。

違いのまとめ

アルゴリズム1 は、文字列を素直に1つずつ比べるので挙動が分かりやすい一方、比較回数は多くなりがちです。

アルゴリズム2 は、途中まで一致した情報を利用して無駄な比較を減らします。繰り返しの多いパターンに強い傾向があります。

アルゴリズム3 は、後ろ側から比較することと不一致時の大きなシフトで、文字の種類が多いときに効率が良くなりやすいです。

リンク先では、どのアルゴリズムかを「ラベル」だけで判断し、挙動から推測してみてください。

クイズ

以下の問いに答えながら、実際の動きを見て確認しましょう。

Q1 実習1(先頭一致が多い)で、比較回数が最も少なかったのはどの「アルゴリズム番号」でしたか?理由も一言で。

Q2 実習2(末尾で不一致が多い)で、シフトが最も大きくなる場面が多かったのはどれでしたか?

Q3 実習3(繰り返しが強い)で「途中まで一致した情報を再利用」していると感じたのはどれでしたか?

Q4 実習4(文字の種類が多い)で、1回の不一致から大きくジャンプする動きはどれでしたか?

Q5 実習5(見つかる位置の違い)で、見つかる位置が遅いほど比較回数が増えるのはどのアルゴリズムですか?

答え合わせは、比較回数とシフト量、メッセージの理由説明を見比べると判断しやすくなります。