Фибоначчиева система счисления: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
w>Incnis Mrsi
( Новая страница: «'''Фибоначчиева система счисления''' — способ представления [[целое число|цел...»)
 
w>Pieter Baas
Строка 78: Строка 78:
  
 
{{section-stub}}<!-- надо перевести [[en:Golden_ratio_base]], но я уже ничего не соображаю --Incnis Mrsi -->
 
{{section-stub}}<!-- надо перевести [[en:Golden_ratio_base]], но я уже ничего не соображаю --Incnis Mrsi -->
 
+
{{rq|source}}
  
 
[[Категория:Системы счисления]]
 
[[Категория:Системы счисления]]

Версия от 05:08, 30 декабря 2008

Фибоначчиева система счисления — способ представления целых чисел через числа Фибоначчи Fk.

Представление натуральных чисел

Число Запись
в ФСС
Код
Фибоначчи
0 0……0  
F2=1 1 11
F3=2 10 011
F4=3 100 0011
4 101 1011
F5=5 1000 00011
6 1001 10011
7 1010 01011
F6=8 10000 000011
Fn-1  101010 0101011 
Fn 10……00 00……011
Fn+1 10……01 10……011

Любому неотрицательному целому числу a = 0 ,   1 ,   2 , a = 0,\ 1,\ 2,\dots можно единственным образом представить через последовательность битов …σk…σ4σ3σ2: a = k σ k F k ,   σ k = 0 , 1 a = \sum_k \sigma_k F_k,\ \sigma_k = 0,1 , причём последовательность {σk} содержит лишь конечное число единиц, и не имеет пар соседних единиц: k 2 : ( σ k = 1 ) ( σ k + 1 = 0 ) \forall k\ge 2: (\sigma_k=1) \rightarrow (\sigma_{k+1}=0) . За исключением последнего свойства, данное представление аналогично двоичной системе счисления.

Обоснование

В основе лежит теорема Цеккендорфа — любое неотрицательное целое число представимо в виде суммы некоторого набора чисел Фибоначчи, не содержащего пары соседних чисел Фибоначчи. Причём представление такое единственно.

Доказательство существования легко провести по индукции. Любое целое число a 1 a\ge 1 попадёт в промежуток между двумя соседними числами Фибоначчи, то есть для некоторого n 2 n\ge 2 верно неравенство: F n a < F n + 1 F_n \le a < F_{n+1} . Таким образом, a = F n + a a = F_n + a' , где a = a F n   a'=a-F_n\ , так что разложение числа a a' уже не будет содержать слагаемого F n 1 F_{n-1} .

Использование в теории информации

На основе фибоначчиевой системы счисления строится код (кодирование) Фибоначчиуниверсальный код для натуральных чисел (1, 2, 3…), использующий последовательности битов. Поскольку комбинация 11 запрещена в Фибоначчиевой системы счисления, её можно использовать как маркер конца записи. Для составления кода Фибоначчи по записи числа в фибоначчиевой системе счисления следует переписать цифры в обратном порядке (так, что старшая единица оказывается последним символом) и приписать в конце ещё раз 1 (см. таблицу).

Фибоначчиево «произведение»

Для a = k σ k F k a = \sum_k \sigma_k F_k и b = l τ l F l b = \sum_l \tau_l F_l можно определить «произведение» a b = k , l σ k τ l F k + l a\circ b = \sum_{k,l} \sigma_k \tau_l F_{k+l} , формула для которого аналогична формуле умножения двоичных чисел.

Разумеется, данная операция не является настоящим умножением чисел, однако Дональд Кнут доказал её ассоциативность.

Обобщение на действительные числа

Похожее устройство имеет позиционная система счисления для действительных чисел, основанием которой служит золотое сечение ϕ = ( 1 + 5 ) / 2 \phi = (1 + \sqrt{5})/2 иррациональное число.

Шаблон:Section-stub

en:Fibonacci coding eo:Vikipedio:Projekto matematiko/Fibonacci-a kodigo fr:Codage de Fibonacci