Дерево Штерна – Броко
В теории чисел дерево Штерна -Броко представляет собой бесконечное полное двоичное дерево , в котором вершины соответствуют один к одному положительным , рациональным числам значения которых упорядочены слева направо, как в дереве поиска .
Дерево Штерна-Броко было введено независимо Морицем Штерном ( 1858 г. ) и Ахиллом Броко ( 1861 г. ). Штерн был немецким теоретиком чисел; Броко был французским часовщиком , который использовал дерево Штерна-Броко для проектирования систем зубчатых колес с передаточным числом, близким к некоторому желаемому значению, путем нахождения соотношения гладких чисел вблизи этого значения.
Корень дерева Штерна-Броко соответствует числу 1. Отношение родитель-потомок между числами в дереве Штерна-Броко может быть определено в терминах непрерывных дробей или медиан , а также пути в дереве от корня к любому другому число q обеспечивает последовательность приближений к q с меньшими знаменателями , чем q . Поскольку дерево содержит каждое положительное рациональное число ровно один раз, поиск в ширину дерева обеспечивает метод перечисления всех положительных рациональных чисел, который тесно связан с последовательностями Фарея . Левое поддерево дерева Штерна–Броко, содержащее рациональные числа в диапазоне (0,1), называется деревом Фарея .
Создание правила
[ редактировать ]Каждой вершине в дереве можно сопоставить тройку дробей, состоящую из трех дробей в той же строке, что и вершина, а именно дроби непосредственно слева от вершины, дроби в самой вершине и дроби непосредственно справа. вершины. (См. рисунок выше.) Левая и правая дроби соответствуют не вершинам в той же строке, что и вершина, а скорее вершинам в некоторой предыдущей строке. Каждую такую дробь можно понимать как метку области плоскости, ограниченной двумя бесконечными путями, спускающимися из предыдущей вершины, помеченной той же дробью. Второй элемент тройки всегда будет медиатой первого и третьего элементов. Например, корень связан с и его левые и правые потомки связаны с и . Дерево генерируется по следующему правилу: левый потомок является и правый потомок .
Дерево цепных дробей
[ редактировать ]Отношения между родителями и потомками также можно понимать в терминах цепных дробей. Каждое положительное рациональное число может быть выражено как непрерывная дробь формы где и являются целыми неотрицательными числами, и каждый последующий коэффициент является положительным целым числом. Это представление не является единственным, поскольку но использование этой эквивалентности для замены каждой цепной дроби, заканчивающейся единицей, на более короткую цепную дробь показывает, что каждое рациональное число имеет уникальное представление, в котором последний коэффициент больше единицы. Тогда, если только , число имеет родителя в дереве Штерна – Броко, заданном выражением цепной дроби Эквивалентно, этот родительский элемент формируется путем уменьшения знаменателя в самом внутреннем члене непрерывной дроби на 1 и сокращения с предыдущим членом, если дробь становится . Например, рациональное число 23 ⁄ 16 имеет представление цепной дроби. поэтому его родителем в дереве Штерна – Броко является число
И наоборот, каждое число в дереве Штерна–Броко имеет ровно два потомка: если тогда один дочерний элемент - это число, представленное цепной дробью в то время как другой ребенок представлен непрерывной дробью Один из этих детей младше и это левый ребенок; другой больше, чем и это правый дочерний элемент (на самом деле первое выражение дает левого дочернего элемента, если нечетный и правильный ребенок, если четный).Например, представление цепной дроби 13 ⁄ 9 — это [1;2,4], а его два дочерних элемента — [1;2,5] = 16 ⁄ 11 (правый ребенок) и [1;2,3,2] = 23/16 . ( левый ребенок)
Ясно, что для каждого выражения конечной цепной дроби можно неоднократно переходить к его родителю и достигать корня [1;]= 1 ⁄ 1 дерева за конечное число шагов ( + за 0 ... + a k - 1 точнее, шагов). Следовательно, каждое положительное рациональное число встречается в этом дереве ровно один раз. Более того, все потомки левого дочернего элемента любого числа q меньше q , а все потомки правого дочернего элемента q больше q . Числа на глубине d в дереве — это числа, для которых сумма коэффициентов цепной дроби равна d + 1 .
Медианты и бинарный поиск
[ редактировать ]Дерево Штерна – Броко образует бесконечное двоичное дерево поиска относительно обычного порядка рациональных чисел. [1] [2] Набор рациональных чисел, спускающихся из узла q, определяется открытым интервалом ( L q , H q ), где L q — предок числа q , меньшего, чем q, и ближайшего к нему в дереве (или L q = 0, если q не имеет меньшего предка), а H q — предок q, который больше q и ближайший к нему в дереве (или H q = +∞, если q не имеет большего предка).
Путь от корня 1 до числа q в дереве Штерна – Броко можно найти с помощью алгоритма двоичного поиска , который можно выразить простым способом с помощью медиан . Дополните неотрицательные рациональные числа, включив в них значение 1/0 (представляющее +∞), которое по определению больше, чем все остальные рациональные числа. Алгоритм двоичного поиска работает следующим образом:
- Инициализируйте два значения L и H значениями 0/1 и 1/0 соответственно.
- Пока q не будет найден, повторяйте следующие шаги:
- Пусть L = a / b и H = c / d ; вычислите медиану M = ( a + c )/( b + d ).
- Если M меньше q , то q находится в открытом интервале ( M , H ); замените L на M и продолжайте.
- Если M больше, чем q , то q находится в открытом интервале ( L , M ); замените H на M и продолжайте.
- В остальном случае q = M ; завершить алгоритм поиска.
Последовательность значений M, вычисленная в результате этого поиска, представляет собой в точности последовательность значений на пути от корня до q в дереве Штерна – Броко. Каждый открытый интервал ( L , H то шаге поиска, представляет собой интервал ( , , HM ) ), встречающийся на каком - представляющий потомков медианы M. LM Родителем q в дереве Штерна-Броко является последний найденный медиант, не равный q .
Эту процедуру двоичного поиска можно использовать для преобразования чисел с плавающей запятой в рациональные числа. Остановившись после достижения желаемой точности, числа с плавающей запятой можно аппроксимировать до произвольной точности. [3] Если действительное число x приближается любым рациональным числом a / b , которого нет в последовательности медиан, найденной алгоритмом выше, то последовательность медиан содержит более близкое приближение к x , имеющее знаменатель, не более чем равный b ; в этом смысле эти медианы образуют наилучшие рациональные приближения к x .
Дерево Штерна-Броко само по себе может быть определено непосредственно через медианы: левый дочерний элемент любого числа q является медиатой q с его ближайшим меньшим предком, а правый дочерний элемент q является медиантой q с его ближайшим большим предком. В этой формуле q и его предок должны быть взяты в наименьших значениях, и если нет меньшего или большего предка, то следует использовать 0/1 или 1/0 соответственно. Опять же, используя в качестве примера 7/5, его ближайший меньший предок — 4/3, поэтому его левый дочерний элемент — (4 + 7)/(3 + 5) = 11/8, а его ближайший больший предок — 3/2, поэтому его правый дочерний элемент равен (7 + 3)/(5 + 2) = 10/7.
Связь с последовательностями Фарея
[ редактировать ]Последовательность Фарея порядка n — это отсортированная последовательность дробей в замкнутом интервале [0,1], знаменатель которых меньше или равен n . Как и в методе двоичного поиска для создания дерева Штерна – Броко, последовательности Фарея могут быть построены с использованием медиан: последовательность Фарея порядка n + 1 формируется из последовательности Фари порядка n путем вычисления медианы каждых двух последовательных значений в последовательность Фарея порядка n , сохраняя подмножество медиан, знаменатель которых точно равен n + 1, и помещая эти медианы между двумя значениями, из которых они были вычислены.
Аналогичный процесс вставки медианты, начинающийся с другой пары конечных точек интервала [0/1,1/0], также можно рассматривать для описания построения вершин на каждом уровне дерева Штерна – Броко. Последовательность Штерна-Броко порядка 0 представляет собой последовательность [0/1,1/0], а последовательность Штерна-Броко порядка i представляет собой последовательность, образованную путем вставки медианты между каждой последовательной парой значений в последовательности Штерна-Броко. порядка i − 1. Последовательность Штерна–Броко порядка i состоит из всех значений на первых i уровнях дерева Штерна–Броко вместе с граничными значениями 0/1 и 1/0 в числовом порядке.
Таким образом, последовательности Штерна-Броко отличаются от последовательностей Фэрея двумя способами: они в конечном итоге включают все положительные рациональные числа, а не только рациональные числа в интервале [0,1], и на n -м шаге включаются все медианы, а не только те, которые со знаменателем, равным n . Последовательность Фарея порядка n может быть найдена путем обхода левого поддерева дерева Штерна – Броко по порядку с возвратом всякий раз, когда число со знаменателем, большим n достигается .
Дополнительные свойства
[ редактировать ]Если все рациональные числа находятся на одной и той же глубине в дереве Штерна – Броко, тогда
- .
Более того, если две последовательные дроби на определенном уровне дерева или выше (в том смысле, что любая дробь между ними должна находиться на более низком уровне дерева), тогда
- . [4]
Наряду с определениями в терминах непрерывных дробей и медиан, описанными выше, дерево Штерна – Броко также можно определить как декартово дерево для рациональных чисел с приоритетом по их знаменателям. Другими словами, это уникальное двоичное дерево поиска рациональных чисел, в котором родительский элемент любой вершины q имеет меньший знаменатель, чем q (или если q и его родительский элемент являются целыми числами, в которых родительский элемент меньше q ). Из теории декартовых деревьев следует, что наименьшим общим предком любых двух чисел q и r в дереве Штерна–Броко является рациональное число в замкнутом интервале [ q , r ], которое имеет наименьший знаменатель среди всех чисел в этом интервале. .
Перестановка вершин на каждом уровне дерева Штерна-Броко с помощью перестановки битов дает другое дерево, дерево Калкина-Уилфа , в котором дочерними элементами каждого числа a / b являются два числа a /( a + b ). и ( а + б )/ б . Как и дерево Штерна-Броко, дерево Калкина-Уилфа содержит каждое положительное рациональное число ровно один раз, но это не бинарное дерево поиска.
См. также
[ редактировать ]- Функция вопросительного знака Минковского , определение которой для рациональных аргументов тесно связано с деревом Штерна – Броко.
- Дерево Калкина – Уилфа
Примечания
[ редактировать ]- ^ Грэм, Рональд Л .; Кнут, Дональд Э .; Паташник, Орен (1994), Конкретная математика (второе изд.), Аддисон-Уэсли, стр. 116–118, ISBN 0-201-55802-5
- ^ Гиббонс, Джереми; Лестер, Дэвид; Берд, Ричард (2006), «Функциональная жемчужина: перечисление рациональных чисел», Journal of Functional Programming , 16 (3): 281–291, doi : 10.1017/S0956796806005880 , S2CID 14237968 .
- ^ Седжвик и Уэйн, Введение в программирование на Java . Java-реализацию этого алгоритма можно найти здесь .
- ↑ Богомольный приписывает это свойство Пьеру Ламоту, канадскому теоретику музыки.
Ссылки
[ редактировать ]- Броко, Ахилл (1861), «Расчет шестерен методом приближения, новый метод», Revue Chronométrie , 3 : 186–194 .
- Броко, Ахилл (1862 г.), «Расчет шестерен методом аппроксимации, новый метод», https://gallica.bnf.fr/ark:/12148/bpt6k1661912?rk=21459;2
- Стерн, Мориц А. (1858), «О теоретико-числовой функции» , Журнал чистой и прикладной математики , 55 : 193–220 .
- Берстель, Жан; Лауве, Аарон; Ройтенауэр, Кристоф; Салиола, Франко В. (2009), Комбинаторика слов. Слова Кристоффеля и повторы в словах , Серия монографий CRM, том. 27, Провиденс, Род-Айленд: Американское математическое общество , ISBN. 978-0-8218-4480-9 , Збл 1161.68043
Внешние ссылки
[ редактировать ]- Айлам, Дхрува (2013), Модифицированные последовательности Штерна-Броко , arXiv : 1301.6807 , Бибкод : 2013arXiv1301.6807A
- Остин, Дэвид, Деревья, Зубы и Время: Математика изготовления часов , Тематическая колонка от AMS
- Богомольный, Александр , Штерн Броко-Три , разрезанный узел , получено 3 сентября 2008 г.
- Слоан, NJA , Дерево Стерна-Броко или Фарея , Интернет-энциклопедия целочисленных последовательностей .
- Вильдбергер, Норман, MF96: Дроби и дерево Штерна-Броко .
- Вайсштейн, Эрик В. , «Дерево Штерна – Броко» , MathWorld
- Дерево Штерна – Броко в PlanetMath .
- Бесконечные дроби , Числофил
- Удивительные графики III , числофил
- Последовательность OEIS A002487 (двуатомная серия Стерна (или последовательность Штерна-Броко))