// Kodowanie Fibonacci'ego – kod samosynchronizujący oparty na matematyce złotej proporcji
Działa dla każdej dodatniej liczby całkowitej bez dodatkowych parametrów.
Umożliwia odzyskanie synchronizacji po błędach transmisji dzięki wzorcowi 11.
Opiera się na ciągu Fibonacciego i twierdzeniu Zeckendorfa.
Kodowanie Fibonacci'ego używa twierdzenia Zeckendorfa: każda dodatnia liczba całkowita ma jednoznaczną reprezentację jako suma niekolejnych liczb Fibonacciego. Kod składa się z tej reprezentacji w postaci binarnej (1, jeśli dana liczba Fibonacciego jest użyta, 0 w przeciwnym razie) oraz dodatkowej jedynki na końcu jako znacznika zakończenia. Wzorzec 11 pojawia się tylko na końcu kodu.
Ciąg Fibonacciego: 1, 2, 3, 5, 8, 13, 21... 1 = F(1) → 11 2 = F(2) → 011 3 = F(3) → 0011 4 = F(3)+F(1) → 1011 5 = F(4) → 00011 12 = F(5)+F(3)+F(1) → 101011 Nie używa się kolejnych liczb Fibonacciego Wzorzec 11 pojawia się tylko na końcu kodu
Kodowanie Fibonacci'ego to kod uniwersalny, który reprezentuje dodatnie liczby całkowite za pomocą ciągu Fibonacciego. Opiera się na twierdzeniu Zeckendorfa i tworzy kody samosynchronizujące, w których wzorzec 11 pojawia się wyłącznie jako znacznik końca.
Twierdzenie Zeckendorfa mówi, że każdą dodatnią liczbę całkowitą można w sposób jednoznaczny przedstawić jako sumę niekolejnych liczb Fibonacciego. Ta reprezentacja stanowi podstawę kodowania Fibonacci'ego.
Wzorzec 11 czyli dwie kolejne jedynki pojawia się wyłącznie na końcu każdego słowa kodowego. Dzięki temu dekoder może po błędach transmisji odnaleźć granice słów kodowych, wyszukując wystąpienia 11.
Kodowanie Fibonacci'ego jest wykorzystywane w badaniach nad kompresją danych, w odpornych na błędy systemach transmisji oraz w informatyce teoretycznej. Ceni się je bardziej za własności matematyczne niż za praktyczną wydajność.