l может быть от 0 до 64, поэтому не отправляйте l, отправляйте n и m, так как они могут быть равны нулю и не должны идти до 64 (им просто нужно иметь возможность добавлять в 64). * * 1 001
Биты l должны начинаться и заканчиваться на 1, поэтому их не нужно передавать.
отправить 6 бит для n
отправить до 6 бит для m (см. ниже)
рассчитать l = 64 - (n + m)
если l = 0, число равно 0, больше ничего не отправлять
если l = 1, число равно 1 * 2 ^ m, больше ничего не отправлять
если l = 2, число равно 3 * 2 ^ m, больше ничего не отправлять
Послать середину l - 2 бита.
Максимальные издержки = 10 бит.
Сокращение битов для m связано с тем, что
если n> 32, то вы знаете, что m <32, поэтому нужно всего 5 бит <br>
если n> 48, то вы знаете, что m <16, поэтому нужно только 4 бита <br>
если n> 56, то вы знаете, что m <8, поэтому требуется только 3 бита <br>
если n> 60, то вы знаете, что m <4, поэтому нужно только 2 бита <br>
если n = 63, то вы знаете, что m <2, поэтому требуется только 1 бит </p>