(programming required) Write a program, in a language of your choice (but see the warning below), that implements the algorithm in Figure 4.16, and outputs the list of the 212 = 4096 different 23-bit codewords of the Golay code in a file, one per line. The Golay code is named after Marcel Golay, a Swiss researcher who discovered them in 1949, just before Hamming discovered what would later be called the Hamming code. A slight variant of the Golay code was used by NASA around 1980 to communicate with the Voyager spacecraft as they traveled to Saturn and Jupiter. Implementation hint: suppose you represent the set S as an array, appending each element that passes the test in Line 3 to the end of the array. When you add a bitstring x to S, the very next thing you do is to consider adding x + 1 to S. Implementing Line 3 by starting at the x-end of the array will make your code much faster than if you start at the 00000000000000000000000-end of the array. Think about why! Implementation warning: this algorithm is not very efficient! We’re doing 223 iterations, each of which might involve checking the Hamming distance of as many as 212 pairs of strings. On a mildly aging laptop, my Python solution took about ten minutes to complete; if you ignore the implementation hint from the previous paragraph, it took 80 minutes. (I also implemented a solution in C; it took about 10 seconds following the hint, and 100 seconds not following the hint.)
Already registered? Login
Not Account? Sign up
Enter your email address to reset your password
Back to Login? Click here