ナイツ関数(ボケの方)を解いてみるではレーベンシュタイン距離を用いて解きましたが、同じように文字列の近さを調べるものに Jaro-Winkler distance (英語) というものがあります。 何が違うかというと、Jaro-Winkler distance はある範囲にあるものが交換可能かどうかを見ていくため、文字のタイプミスのようなものを発見する際に用いられることが多いようです。 一方、レーベンシュタイン距離は 2 つの文字列全体を探索するのが特徴で、これらの特徴はコードにも現れます。 #! /usr/bin/gawk -f # jaro-winkler.awk # Ref.: http://en.wikipedia.org/wiki/Jaro-Winkler_distance # Ref.: http://www.iugrina.com/files/JaroWinkler/Jaro