Изменения

Перейти к: навигация, поиск

Счётчик Кнута

9 байт убрано, 18:07, 10 июля 2019
м
2 поправки орфографии.
==== Инвариант с нулем ====
Проблемой может оказаться появление двух последовательных двоек, при этом перое первое правило может породить
тройку. То есть недопустима следующая ситуация:
Причем количество единиц между двойками может быть любое, в итоге это приведет к появлению тройки.
Однако если между любой парой двоек всегда будет находится находиться хотя бы один<tex>0</tex>, то такой ситуации не возникнет. Покажем, что что этот инвариант
поддерживается после инкремента, рассмотрев возможные ситуации:
: Число двоек не изменяется
{{Определение
|id=b_ary_rr
|definition=В общем случае подобное представление называется '''<tex>b</tex>-ричными избыточными ричным избыточным представлением''' ('''ИП''', англ. ''b-ary redundant representation''), которое похоже на представление в счетчике Кнута, но основание системы может быть произвольным, то есть <tex>d_i \in \{0,1,\dotsc ,b\}</tex> и <tex>\sum\limits_{i=1}^n d_i \cdot b^i = N</tex>, где <tex>b</tex> {{---}} основание. Оно позволяет прибавить единицу к любому разряду, то есть увеличить число на <tex>b^i</tex> за <tex>O(1)</tex>
}}
{{Определение
|id=fixup
|definition= Операция '''исправления''' (англ. ''fix'') разряда <tex>d_i=b</tex> в регулярном ИП увеличивает <tex>d_{i+1}</tex> на <tex>1</tex> и устанавливает <tex>d_i</tex> в <tex>0</tex>, образуая образуя новое регуляроне регулярное ИП, представляющее то же число, что и <tex>d</tex>.
}}
13
правок

Навигация