holiday-lights/NOTES.md

522 B

TIME FOR SOME INFORMATION THEORY!

We need to pack morse code. The most efficient packing I can think of is a stream of base 3 ints: 0 = END, 1 = DIT, 2 = DAH

We have to encode into 8-bit bytes, so the smallest atomic (quick to index) encoded chunk is: int('22222', 3) = 242

Given the last int must be 0, we can encode anything up to length 4. But I need to encode the prosign ARK = .-.-.-.- length 8. So I need two bytes. Well, if I'm going to use two bytes, I may as well just encode a length and a bitmask.