12
правок
Изменения
Нет описания правки
}}
Заметим, что в этой системе представление числе числа неоднозначно, например представление <tex>212</tex> эквивалентно <tex>1100</tex>.
== Счетчик Кнута ==
:: <tex>(\dotsc 2\dotsc 0\dotsc 12\dotsc 0) \overset{Inc} {\longmapsto} (\dotsc 2\dotsc 0\dotsc 20\dotsc 1)</tex>.
:: <tex>(\dotsc 02\dotsc 1) \overset{Inc} {\longmapsto} (\dotsc 10\dotsc 2)</tex>.
:: <tex>(\dotsc 2\dotsc 02\dotsc1) 1 \overset{Inc} {\longmapsto} (\dotsc 2\dotsc 10\dotsc 2)</tex>) (частный случай предыдущего).
:: <tex>(\dotsc 12) \overset{Inc} {\longmapsto} (\dotsc 21)</tex>.
: Пропадает одна двойка
# Если <tex>d_i=b</tex>, исправить <tex>d_i</tex>.
# Если <tex>d_i=b-1</tex> и самый младший значащий разряд <tex>d_j</tex>, такой, что <tex>j>i</tex> и <tex>d_j \ne b-1</tex>, равен <tex>b</tex> (т.е. <tex>d_j=b</tex>), применить операцию исправления к разряду <tex>d_j</tex>.
# Добавить <tex>1 </tex> к <tex>d_i</tex>.
# Если <tex>d_i=b</tex>, исправить <tex>d_i</tex>.
что <tex>j>i</tex> и <tex>d_j \ne b-1</tex>, если он равен <tex>b</tex>,
иначе этот указатель будет на произвольный разряд <tex>d_j</tex> (<tex>j>i</tex>).
Теперь, во время увеличения разряда <tex>d_i</tex> на <tex>1, </tex> будем проверять
разряд по указателю вперед (п. 2).