How receivers learn the values of a and b
If the code a x X + b x Y is going to be fixed once and then used for many strings X and Y, then the receiver can learn a and b through the following procedure. In the very first transmission, it is made known to everyone that the messages to be sent will be X = 1 and Y = 0. As a result, the message received will be a x 1 + b x 0 = a. In the second transmission, the messages to be sent will be X = 0 and Y = 1, giving a x 0 + b x 1 = b. The cost of this procedure can easily be amortized over subsequent uses.
How the receivers use the output from node E to recover the value of X and Y
Carl in the example receives 21, the value of X, from node A. From link 6, Carl knows that 3 x X + 20 x Y = 23, as defined by the code. So Carl's computer essentially plugs in 21 for X and asks, for what value of Y is the following equation satisfied?
3 x 21 + 20 x Y = 23.
As before, the way we define addition and multiplication always returns values in the range 0 through 31, and the computer finds that 3 x 21 = 31. Well, it finds that 3 x 21 = 63 in standard multiplication. But, using our definition, the computer subtracts 32 to get a value within the desired range (0 through 31), ending up with 31. Then it subtracts this value from both sides of the equation, finding
20 x Y = 23 – 31
In traditional arithmetic, the 23 – 31 would be –8, but –8 is outside of our allowed range. To get a value in range, the computer adds 32. The end result is
23 31 = 24
Which means that
20 x Y = 24.
Only one value in the set 0 through 31 satisfies that equation, namely
Y = 30.
How so? Because in traditional arithmetic 20 x 30 = 600, and subtracting 32 18 times leaves a remainder of 24.
Similarly, Dana's computer learns that 3 x X + 20 x Y = 23 and that Y = 30
Together, that information implies
3 x X = 23 – 20 x 30 = 23 – 24 = 31
and the only value of X satisfying 3 x X = 31 is
X=21.