Кіріспе
Фибоначчи кодтамасы – оң бүтін сандарды екілік код сөздерге кодтайтын әмбебап код. Математика мен информатикада Фибоначчи кодтамасы – Фибоначчи сандарына негізделген бүтін сандарды көрсетудің бір түрі. Әрбір код сөзі "11" деп аяқталады және соңындағы "11" комбинациясынан басқа ешқандай "11" тіркесімесі болмайды. Фибоначчи кодтамасы Зекендорф өрнегімен тығыз байланысты, ол Зекендорф теоремасын қолданатын және ешбір санның қатарынан "1" санынан тұратын өрнегі болмайтын позициялық сандық жүйе. Нақты бүтін санға арналған Фибоначчи код сөзі – сол санның Зекендорф өрнегінің цифрлары кері ретпен орналастырылып, соңына қосымша "1" қосылған нұсқасы.
In mathematics and computing, Fibonacci coding is a universal code which encodes positive integers into binary code words. It is one example of representations of integers based on Fibonacci numbers. Each code word ends with "11" and contains no other instances of "11" before the end. The Fibonacci code is closely related to the Zeckendorf representation, a positional numeral system that uses Zeckendorf's theorem and has the property that no number has a representation with consecutive 1s. The Fibonacci code word for a particular integer is exactly the integer's Zeckendorf representation with the order of its digits reversed and an additional "1" appended to the end.
Басқа әмбебап кодтармен салыстыру
Фибоначчи кодтамасының пайдалы қасиеті бар, ол кейде оны басқа әмбебап кодтармен салыстырғанда тартымды етеді: ол өзін-өзі синхрондаушы кодтың мысалы болып табылады, бұл зақымдалған дерек ағынынан мәліметтерді қалпына келтіруді жеңілдетеді. Көптеген басқа әмбебап кодтарда, егер бір бит өгерілсе, одан кейін келетін ешбір мәлімет дұрыс оқылмайды. Ал Фибоначчи кодтамасында, өзгертілген бит бір таңбаны екі рет оқуға немесе екі таңбаны қате түрде бір рет оқуға себеп болуы мүмкін, бірақ дерек ағынынан "0" таңбасын оқу қателердің одан әрі таралуын тоқтатады. "11" таңбаларынан басқа "0" таңбасы жоқ дерек ағыны болғандықтан, бір биттік қате салдарынан зақымдалған дерек ағыны мен бастапқы дерек ағыны арасындағы ең көп түзету қашықтығы үшке тең. Бұл тәсіл – символдар тізбегін қолдана отырып кодтау, онда кейбір үлгілерге (мысалы, "11") тыйым салынады және оны еркін жалпылауға болады.
Мысал
Келесі кестеде 65 саны Фибоначчи кодында 0100100011 ретінде көрсетілген, себебі 65 = 2 + 8 + 55. Фибоначчи сандарының алғашқы екісі (0 және 1) пайдаланылмайды және соңына әрқашан 1 қосылады.
Жалпылау
Оң бүтін сандар үшін Фибоначчи кодтамасы – "11" санымен аяқталатын және басқа жерде "11" тіркесімі кездеспейтін екілік тізбектер. Бұл, N қатарынан келетін бірліктермен аяқталатын және N қатарынан келетін бірліктердің басқа тіркесімі жоқ екілік тізбектерге дейін жалпыланады. Мысалы, N = 3 болғанда, оң бүтін сандар 111, 0111, 00111, 10111, 000111, 100111, 010111, 110111, 0000111, 1000111, 0100111 ретінде кодталады. Бұл жағдайда, тізбек ұзындығына байланысты кодтамалар саны Трибоначчи сандарының тізбегімен сипатталады. Егер белгілі бір символдан кейін қандай символдарға рұқсат етілетінін анықтайтын жалпы шектеулер болса, максималды ақпарат жылдамдығын алу үшін ең бастысы – максималды энтропиялық кездейсоқ жүріс арқылы оңтайлы өту ықтималдықтарын табу, содан кейін энтропиялық кодтаушыны (декодермен алмастырылған кодтаушы) қолданып, табылған оңтайлы өту ықтималдықтарын орындайтын символдар тізбегі ретінде хабарды кодтауға болады.