Дерево Калкіна — Вілфа

Матеріал з testwiki
Перейти до навігації Перейти до пошуку
Дерево Калкіна — Вілфа

Дерево Калкіна — Вілфа (Шаблон:Lang-en) — орієнтоване двійкове дерево, у вершинах якого розташовані додатні раціональні дроби за таким правилом:

  • корінь дерева — дріб 11;
  • вершина з дробом mn має двох нащадків: mm+n (лівий) і m+nn (правий).

Дерево описали Нейл Калкін і Шаблон:Не перекладено (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 (фрагмент)

Шаблон:Clear

Див. також

Примітки

Шаблон:Примітки

Література

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