Дерево Калкина — Уилфа

Материал из testwiki
Перейти к навигации Перейти к поиску
Дерево Калкина — Уилфа

Дерево Ка́лкина — Уи́лфа (Шаблон:Lang-en) — ориентированное двоичное дерево, в вершинах которого расположены положительные рациональные дроби согласно следующему правилу:

  • корень дерева — дробь 11;
  • вершина с дробью mn имеет двух потомков: mm+n (левый) и m+nn (правый).

Дерево описано Нилом Калкином и Шаблон:Нп5 (2000[1]) в связи с задачей явного пересчёта[2] множества рациональных чисел.

Свойства дерева Калкина — Уилфа

Основные свойства

  • Все дроби, расположенные в вершинах дерева, несократимы;
  • Любая несократимая рациональная дробь встречается в дереве в точности один раз.

Последовательность Калкина — Уилфа

Обход «в ширину» дерева Калкина — Уилфа (путь обхода показан розовой спиралью)

Из приведенных выше свойств следует, что последовательность положительных рациональных чисел, получаемая в результате обхода «в ширину»[3] (Шаблон:Lang-en) дерева Калкина — Уилфа (называемая также последовательностью Калкина — Уилфа; см. иллюстрацию),

11,12,21,13,32,23,31,14,43,35,52,25,53,34,

определяет взаимно однозначное соответствие между множеством натуральных чисел и множеством положительных рациональных чисел.

Данная последовательность может быть задана рекуррентным соотношением[4]

q1=1;
qi+1=1qi+1{qi}=12qiqi+1,i=1,2,,

где x и {x} обозначают соответственно целую и дробную части числа x.

В последовательности Калкина — Уилфа знаменатель каждой дроби равен числителю следующей.

Функция fusc

В 1976 году Э. Дейкстра определил на множестве натуральных чисел целочисленную функцию fusc(n) следующими рекуррентными соотношениями[5]:

fusc(1)=1;
fusc(2n)=fusc(n);
fusc(2n+1)=fusc(n)+fusc(n+1).

Последовательность значений fusc(n),n=1,2,3, совпадает с последовательностью числителей дробей в последовательности Калкина — Уилфа, то есть последовательностью

1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, 2, 5, 3, 4, …

Таким образом (поскольку знаменатель каждой дроби в последовательности Калкина — Уилфа равен числителю следующей), n-й член последовательности Калкина — Уилфа равен fusc(n)/fusc(n+1), а соответствие

nfusc(n)fusc(n+1),n=1,2,3,

является взаимно однозначным соответствием между множеством натуральных чисел и множеством положительных рациональных чисел.

Функция fusc может быть, помимо указанных выше рекуррентных соотношений, определена следующим образом.

  • Значение fusc(n+1),n0 равно количеству гипердвоичных (Шаблон:Lang-en) представлений числа n, то есть представлений в виде суммы неотрицательных степеней двойки, где каждая степень 2k встречается не более двух раз[6]. Например, число 6 представляется тремя такими способами:
6 = 4 + 2 = 4 + 1 + 1 = 2 + 2 + 1 + 1, поэтому fusc(6+1)=3.

В оригинальной статье Калкина и Уилфа функция fusc не упоминается, но рассматривается целочисленная функция b(n), определённая для n=0,1,2,, равная количеству гипердвоичных представлений числа n, и доказывается, что соответствие

nb(n)b(n+1),n=0,1,2,

является взаимно однозначным соответствием между множеством неотрицательных целых чисел и множеством рациональных чисел. Таким образом, для n=0,1,2, имеют место соотношения

b(n)=fusc(n+1),
b(2n+1)=b(n),
b(2n+2)=b(n)+b(n+1).

Дерево Кеплера и Saltus Gerberti

«Гармония мира» И. Кеплера (1619), книга III (фрагмент)

Шаблон:Дополнить раздел Шаблон:-

См. также

Примечания

Шаблон:Примечания

Литература

  1. См. статью Calkin, Wilf (2000) в списке литературы.
  2. То есть явного задания взаимно однозначного соответствия между множеством натуральных чисел и множества (положительных) рациональных чисел. Стандартные доказательства счётности множества рациональных чисел обычно не используют явное задание указанного соответствия.
  3. В данном случае обход «в ширину» соответствует последовательному обходу каждого уровня (начиная с верхнего) дерева Калкина — Уилфа слева направо (см. первую иллюстрацию).
  4. Найдено Моше Ньюменом (Moshe Newman); см. книгу Айгнера и Циглера в списке литературы, с. 108.
  5. Документ EWD 570: An exercise for Dr. R. M. Burstall Шаблон:Wayback; воспроизведен в книге Dijkstra (1982) (см. список литературы), pp. 215—216.
  6. При этом считается, что число 0 обладает единственным («пустым») гипердвоичным представлением 0 = 0, поэтому fusc(0+1)=1.
  7. См. Шаблон:Статья В этой статье определяется функция θ0(n), которая оказывается связанной с функцией fusc соотношением θ0(n)=fusc(n+1).