2本のDNA鎖の間のハミング距離を計算してください。
体は、DNAを含む細胞でできています。こうした細胞は定期的に傷んで入れ替わりが必要になり、分裂して娘細胞を作ることでそれを補います。実際、平均的な人の体では、一生の間に約10京回もの細胞分裂が起こります。
細胞が分裂するとき、DNAも複製されます。この過程でときに間違いが起こり、DNAの一部が誤った情報として記録されることがあります。2本のDNA鎖を比べて違いを数えれば、いくつの間違いが起きたのかがわかります。これが「ハミング距離」と呼ばれるものです。
DNAは、C・A・G・Tの4つの文字で表されます。2本の鎖は、次のようになるかもしれません。
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^ ^ ^ ^^
この2本には7つの違いがあるので、ハミング距離は7です。
ハミング距離は、生物学だけでなく科学のさまざまな場面で役立つので、覚えておくとよい言葉です :)
ハミング距離は、同じ長さの配列に対してのみ定義されています。そのため、長さの異なる配列の間で計算しようとしてもうまくいきません。
Smalltalkでは、例外はExceptionのサブクラスのインスタンスです。自分のドメイン用に独自の例外を作ることもできますが、この階層を眺めてみれば、解答を簡単にするのに適したものを選べます。