Outil pour coder/décoder des nombres via le codage NegaFibonacci (mots binaires ne comportant jamais deux valeurs 1 consécutives)
Codage de NegaFibonacci - dCode
Catégorie(s) : Compression, Mathématiques
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Ecrire à dCode !
Outil pour coder/décoder des nombres via le codage NegaFibonacci (mots binaires ne comportant jamais deux valeurs 1 consécutives)
Le code de NegaFibonacci utilise une variante du théorème de Zeckendorf qui indique que tout nombre entier (relatif) peut s'écrire comme la somme de nombres de Fibonnacci généralisés (positifs ou négatifs) non consécutifs.
$$ n = \sum_{i=1}^{k} \beta_i F_{-i} $$
(noter l'indice $ i $ négatif) avec $ \beta_i $ (valant 0 ou 1)
Le codage NegaFibonnacci est la concaténation des coefficients binaires $ \beta_i $ pour en faire un nombre binaire.
Exemple : $ 12 $ est la somme de $ F_{-7} = 13 $ et $ F_{-2} = -1 $ soit 1000010 en binaire (les deux 1 sont en position 7 et 2 en partant de la droite).
Cette représentation similaire à Zeckendorf ne possède jamais 2 nombres de Fibonnacci consécutifs et donc la valeur binaire n'a jamais 2 fois le chiffre 1 consécutivement.
Chaque 1 du mot binaire correspond à un nombre de NegaFibonacci (nombre de la suite de Fibonacci généralisée aux nombres négatifs). Ainsi, pour calculer le nombre décimal original, ajouter tous les nombres de NegaFibonacci correspondant aux 1 du mot binaire.
Exemple : 10100 correspond à $ 1 \times F_{-5} + 0 \times F_{-4} + 0 \times F_{-3} + 1 \times F_{-2} + 0 \times F_{-1} = F_{-5} + F_{-3} = 5 + 2 = 7 $
Le codage NegaFibonacci est déjà une variante du codage de Fibonacci. Il a pour avantage d'être généralisable aux nombres relatifs (entiers positifs ou négatifs).
dCode se réserve la propriété du code source de l'outil 'Codage de NegaFibonacci' en ligne. Sauf code licence open source explicite (indiqué CC / Creative Commons / gratuit), tout algorithme, applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toute fonction (convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codé en langage informatique (PHP, Java, C#, Python, Javascript, Matlab, etc.) aucune donnée, script ou accès API ne sera cédé gratuitement, idem pour télécharger Codage de NegaFibonacci pour un usage hors ligne, PC, tablette, appli iPhone ou Android !
Rendez-vous sur notre communauté Discord pour participer au forum d'entraide !