となるようにN個の数字を生成する.N、B、およびDが与えられた場合、長さBビット(1 < = B < = 8)であり、各符号語は、他の符号語のそれぞれからD(1 < = D < = 7)のハミング距離以上離れている。一対の符号語間のハミング距離は、その2進表記が異なる2進ビットの数である。は、それらの間のハミング距離が少なくともD
0x554 = 0101 0101 0100
0x234 = 0010 0011 0100
ビット差:5ビットが異なっていたので、xxxは は、ハミング距離であるXX(0x554が進数字5,5と16進数を意味し、および4)2つのコードワード0x554と0x234とその違いを考慮5.
例
input :- N=16 B=7 D=3
output :- 0 7 25 30 42 45 51 52 75 76 82 85 97 102 120 127
Iは、サブセット内の他の数を持つピックアップサブセット内の各数値を長さBの全てのコードワード(バイナリ文字列)を生成し、サイズNのすべてのサブセットを選んで試してみて、それかどうかを確認することができ少なくともDハムですしかし、これは時間が必要です。これは時間を必要とします。最悪のケースでは恐ろしいことがありますnCk
番号を効率的に生成するにはどうすればよいですか?