Изменения
→Пример
{{Определение|id=knuth_counter|definition= '''Счетчик Кнута''' (англ. ''Knuth's Counter'') {{- --}} структура данных, представленная избыточной двоичной системой счисления, где в которой добавление единицы к любому разряду числу и вычитание единицы выполняется за <tex>O(1)</tex>.}}
{{Определение|id=knuth_counter|definition= Неотрицательное целое число <tex>N</tex> в '''Избыточная двоичная система избыточной двоичной системе счисления'' ' записывается в виде последовательности разрядов <tex>(d_n d_{n- двоичная система счисления1} \dotsc d_2 d_1)</tex>, где кроме 0 и 1 допустима 2 <tex>n</tex> обозначает количество разрядов в записи числе, <tex>d_i</tex> {{---}} <tex>i</tex>–й разряд числа.== Алгоритм ==''Примечание: этот алгоритм работает не за истинное <tex>O(1\leqslant i \leqslant n)</tex>. Например, чтобы прибавить причем <tex>d_i \in \{0,1 к 0111...111, нужно 2\}</tex> и <tex>O(\sum\limits_{i=1}^n)d_i \cdot 2^{i-1} = N.</tex> действий.''}}
== Доказательство ==Покажем, что инвариант не нарушится.Описание операции инкремента ====
# Если <tex>d_{i+1}=1</tex>, то заменить первый элемент списка с <tex>i</tex> на <tex>i+1</tex>, иначе удалить его.# Если <tex>d_1= Пример ==Рассмотрим пример для каждого варианта1</tex>, добавление то добавить в начало списка <tex>1 происходит в 3 разряд</tex>.
== Смотри также Источники информации ==* [[Амортизационный анализ]]H. Kaplan и R. E. Tarjan. New heap data structures. 1998* M. J. Clancy и D. E. Knuth. A programming and problem-solving seminar. Technical Report STAN-CS-77-606, Department of Computer Sciencr, Stanford University, Palo Alto, 1977.* G. S. Brodal. Worst case priority queues. ''Proc. 7th annual ACM-SIAM Symposium on Discrete Algorithms (SODA 96)'', страницы 52-58. ACM Press, 1996.* H. Kaplan и R. E. Tarjan. Purely functional representations of catenable sorted lists. ''Proceedings of the 28th Annual ACM Symposium of Computing'', страницы 202-211. ACM Press, 1996* [[Представление целых чиселhttp: прямой код, код со сдвигом, дополнительный код]//www.cphstl.dk/Paper/Numeral-systems/mfcs-13.pdf In-Place Binary Counter]
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Амортизационный анализ]]