ハミング重みとは
ハミング重みは、シンボル列における「0」以外のシンボルの数を数える概念です。特に、ビット列(0と1で構成される数列)においては、「1」の数を指すことが一般的です。
情報理論、符号理論、
暗号理論など、様々な分野で重要な役割を担っています。
ハミング重みの概要
ハミング重みは、あるシンボル列と、すべて「0」で構成されたシンボル列とのハミング距離に等しいという特徴があります。ここで言うハミング距離とは、2つのシンボル列を比較した際に、異なるシンボルの数を示すものです。
ハミング重みという用語は、アメリカの数学者でありコンピュータ科学者でもあった
リチャード・ハミング氏にちなんで名付けられました。彼は、
情報理論や符号理論の分野で多大な貢献をした人物として知られています。
具体例
ハミング重みの概念を理解するために、いくつかの例を挙げます。
- シンボルが {0, 1} の場合、シンボル列が「0」であれば、ハミング重みは0です。これは、1が一つも含まれていないためです。
- 同じくシンボルが {0, 1} の場合、シンボル列が「11101」であれば、ハミング重みは4です。これは、1が4つ含まれているためです。
- シンボルが { ' ', 'A' - 'Z' } (空白とアルファベット大文字)の場合、シンボル列が「MAKE A SENSE」であれば、ハミング重みは10です。これは、空白を除くアルファベットの数が10個であるためです。
これらの例からわかるように、ハミング重みは、対象となるシンボル列に含まれる「0以外のシンボル」の数を単純に数えることで求められます。
ハミング重みの応用
ハミング重みは、以下のような分野で応用されています。
- - 情報理論: 情報の量を測る際や、情報の冗長性を分析する際に利用されます。
- - 符号理論: 誤り検出や誤り訂正のための符号を設計する際に利用されます。
- - 暗号理論: 暗号の強度を評価する際に利用されます。特に、暗号アルゴリズムの実装におけるサイドチャネル攻撃への対策として、ハミング重みを考慮した設計が重要になります。
- - データ圧縮: データ圧縮アルゴリズムの中間処理で、データの性質を判断する指標として使われることがあります。
関連用語
ハミング重みを理解する上で、関連する用語も知っておくと役立ちます。
- - ハミング符号: ハミング距離に基づいて設計された誤り訂正符号の一種です。効率的な符号化と復号化が可能で、様々な分野で利用されています。
- - ハミング距離: 2つのシンボル列の間で、異なるシンボルの数を表す指標です。ハミング重みは、あるシンボル列とすべて「0」のシンボル列とのハミング距離に等しくなります。
まとめ
ハミング重みは、シンボル列中の「0以外のシンボル」の数を表す基本的な概念であり、情報科学、コンピュータ科学、数学など、多岐にわたる分野で応用されています。特にビット列においては、1の数を数えるという簡単な操作で得られるにもかかわらず、様々な解析やアルゴリズム設計において非常に有用な指標となります。