A spy in an enemy country wants to transmit information back to his home country.

The spy wants to utilize the enemy country’s daily morning radio transmission of 15-bits (which is also received in his home country). The spy is able to infiltrate the radio station 5 minutes before transmission time, analyze the transmission that is about to go on air, and can either leave as it is, or flip a single bit somewhere in the transmission (a flip of more than one bit would make the original transmission too corrupt).

how much information can the spy transmit to his operators?

remember:

- The transmission is most likely a different set of 15-bits each day but can also repeat the last day’s transmission. Best, assume it is random
- The spy is allowed to change a maximum of 1 bit in any position
- The spy has agreed on an algorithm/strategy with his operators before he was sent to the enemy country
- No other information or communication is available. the communication is strictly one way
- The spy sees for the first time the intended daily transmission 5 minutes before it goes on the air, he does not hold a list of all future transmissions
- The information on the other end should be extracted in a
**deterministic**way

I believe this one is too tough for an interview question - it took me well over an hour to come up with a solution (well, that actually doesn’t say much…). Anyways, this is definitely one of my favorite puzzles.

This puzzle created some interest, but apart from one non-complete solution which demonstrates the principle only, I didn’t receive any other feedback. Here is my own solution, which is different than the one given in the Winkler book. Naturally, I believe my solution is easier to understand, but please get the Winkler book, it is really that good and you could decide for yourself.

Now for the reason you are reading this post… the solution… oh, if you don’t remember the puzzle, please take a few moments to re-read it and understand what it is all about.

I will (try to) prove that 16 different symbols can be transmitted by flipping a single bit of the 15 which are transmitted daily.

First, for convenience reasons we define the 15-bit transmission as a 14-0 vector.

We will now define four parity functions **P0,P1,P2,P3**, as follows:

Why these specific functions will be clear in a moment.

Let’s try to view them in a more graphical way by marking above each bit in the vector (with the symbols **P0..P3**) iff this bit affects the calculation of the respective “P-function”. For example, bit 11 is included in the formula for **P0** and **P3** therefore we mark the column above it with **P0** and **P3**.

So far so good, but a closer look (diagram below) on the distribution of the “P-functions” reveals why and how they were constructed.

The “P-functions” were constructed in such a way that we have 1 bit which affects only the calculation of **P0**, one bit which affects only **P0 and P1**, one which affects only **P0 and P2** and so on… Try to observe the columns above each of the bits in the vector - *they span all the possible combinations!*

From here the end is very close.

The operators on the receiving side have to calculate the P0..P3 functions and assemble them into a 4-bit “word”.

All the spy has to do, is calculate the actual “P-functions” given by today’s random transmission and get a 4-bit “word”. The spy compares this to the 4-bit “word” she wants to transmit and discovers the difference - *or in other words: the bits which need to be flipped in order to arrive from the actual “P-functions” to the desired “P-functions”.* She then looks up in the diagram above and flips exactly that bit which corresponds to exactly the “P-functions” that she needs to flip. A single bit flip will also toggle the corresponding “P-function/s”.

Since the above wording may sound a big vague, here is a table with some examples:

I have to say this again, This is really one of the most beautiful and elegant puzzles I came across. It is definitely going into “the notebook”…

## No comments:

Post a Comment