Gegeben N, B und D: Finde einen Satz von N Codewörtern (1 < = N < = 64), jedes der Länge B Bits (1 < = B < = 8), so dass jedes der Codewörter wenigstens Hamming-Abstand von D (1 < = D < = 7) von jedem der anderen Codewörter entfernt ist. Die Hamming-Distanz zwischen einem Paar von Codewörtern ist die Anzahl von binären Bits, die sich in ihrer binären Schreibweise unterscheiden. Betrachten Sie die zwei Codewörter 0x554 und 0x234 und deren Unterschiede (0x554 bedeutet die hexadezimale Zahl mit hexadezimalen Ziffern 5, 5 und 4):N Nummern erzeugen, so dass die Hammingdistanz zwischen jedem von ihnen mindestens gleich ist D
0x554 = 0101 0101 0100
0x234 = 0010 0011 0100
Bit Unterschiede: xxx xx Seit fünf Bits verschieden waren, die Hamming-Distanz ist 5.
Beispiel
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 alle Codeworte (Binärstring) der Länge B und versucht, jede Teilmenge der Größe N Kommissionierung und sehen, ob sie mit anderer Nummer in der Untergruppe jede Zahl in dem aufgenommenen Teilmenge erzeugen kann, ist mindestens D Schinken ming auseinander, aber das wird Zeit erfordern nCk
(2**B) C N
die im schlimmsten Fall schrecklich sein kann. Wie kann ich die Nummern effizient generieren?