В математике теорема Цекендорфа , названная в честь бельгийского математика - любителя Эдуарда Цекендорфа , — это теорема о представлении целых чисел в виде суммы чисел Фибоначчи .
Теорема Цекендорфа утверждает, что каждое положительное целое число может быть представлено единственным образом как сумма одного или нескольких различных чисел Фибоначчи таким образом, что сумма не включает никакие два последовательных числа Фибоначчи. Точнее, если N — любое положительное целое число, то существуют положительные целые числа c i ≥ 2 , причем c i + 1 > c i + 1 , такие, что
где F n — n- е число Фибоначчи. Такая сумма называется представлением Цекендорфа числа N. Код Фибоначчи числа N может быть получен из его представления Цекендорфа.
Например, представление Цекендорфа для числа 64 выглядит так:
Существуют и другие способы представления числа 64 в виде суммы чисел Фибоначчи.
но это не представления Цекендорфа, поскольку 34 и 21 являются последовательными числами Фибоначчи, как и 5 и 3.
Для любого заданного положительного целого числа его представление Цекендорфа можно найти, используя жадный алгоритм , выбирая наибольшее возможное число Фибоначчи на каждом этапе.
Хотя теорема названа в честь одноименного автора, опубликовавшего свою статью в 1972 году, тот же результат был опубликован 20 лет назад Герритом Леккеркеркером . [1] Таким образом, теорема является примером закона эпонимии Стиглера .
Теорема Цекендорфа состоит из двух частей:
Первая часть теоремы Цекендорфа (существование) может быть доказана по индукции . Для n = 1, 2, 3 это, очевидно, верно (так как это числа Фибоначчи), для n = 4 имеем 4 = 3 + 1. Если n — число Фибоначчи, то доказывать нечего. В противном случае существует j такое, что F j < n < F j + 1. Теперь предположим, что каждое положительное целое число a < n имеет представление Цекендорфа (гипотеза индукции) и рассмотрим b = n − F j . Поскольку b < n , b имеет представление Цекендорфа по гипотезе индукции. В то же время, b = n − F j < F j + 1 − F j = F j − 1 (мы применяем определение числа Фибоначчи в последнем равенстве), поэтому представление Цекендорфа для b не содержит F j − 1 , а значит, также не содержит F j . В результате n можно представить как сумму F j и представления Цекендорфа b , так что числа Фибоначчи, участвующие в сумме, различны. [2]
Вторая часть теоремы Цекендорфа (единственность) требует следующей леммы:
Лемму можно доказать индукцией по j .
Теперь возьмем два непустых множества и различных непоследовательных чисел Фибоначчи, которые имеют одинаковую сумму, . Рассмотрим множества и , которые равны и из которых были удалены общие элементы (т. е. и ). Так как и имели одинаковую сумму, и мы удалили ровно элементы из из обоих множеств, и должны иметь одинаковую сумму, .
Теперь покажем от противного , что хотя бы одно из и пусто. Предположим противное, т. е. что и оба непусты, и пусть наибольший член будет F s , а наибольший член будет F t . Поскольку и не содержат общих элементов, F s ≠ F t . Без потери общности предположим, что F s < F t . Тогда по лемме, , и, ввиду того, что , , тогда как очевидно . Это противоречит тому факту, что и имеют одинаковую сумму, и мы можем заключить, что либо или должно быть пустым.
Теперь предположим (снова без потери общности), что пусто. Тогда имеет сумму 0, и поэтому должно . Но поскольку может содержать только положительные целые числа, оно также должно быть пустым. В заключение: что подразумевает , доказывая, что каждое представление Цекендорфа уникально. [2]
Можно определить следующую операцию над натуральными числами a , b : учитывая представления Цекендорфа , мы определяем произведение Фибоначчи
Например, представление Цекендорфа для 2 — это , а представление Цекендорфа для 4 — это ( запрещено в представлениях), поэтому
(Продукт не всегда имеет форму Цекендорфа. Например, )
Простая перестановка сумм показывает, что это коммутативная операция; однако Дональд Кнут доказал удивительный факт, что эта операция также ассоциативна . [3]
Последовательность Фибоначчи можно расширить до отрицательного индекса n, используя переставленное рекуррентное соотношение
что дает последовательность чисел " негафибоначчи ", удовлетворяющую
Любое целое число может быть однозначно представлено [4] как сумма чисел негафибоначчи, в которой не используются два последовательных числа негафибоначчи. Например:
Например, 0 = F −1 + F −2 , поэтому уникальность представления зависит от условия, что не используются два последовательных числа негафибоначчи.
Это дает систему кодирования целых чисел , похожую на представление теоремы Цекендорфа. В строке, представляющей целое число x , n- я цифра равна 1, если F −n появляется в сумме, представляющей x ; в противном случае эта цифра равна 0. Например, 24 может быть представлено строкой 100101001, в которой цифра 1 находится на местах 9, 6, 4 и 1, поскольку 24 = F −1 + F −4 + F −6 + F −9 . Целое число x представлено строкой нечетной длины тогда и только тогда, когда x > 0 .
В данной статье использованы материалы доказательства того, что представление Цекендорфа положительного целого числа является уникальным на PlanetMath , лицензированном по лицензии Creative Commons Attribution/Share-Alike License .