ForHosting KIT · Mathematik

Fibonacci-Kodierung

Wandeln Sie jede positive ganze Zahl in ihren Fibonacci-Code um: Aus 6 wird 10011, gebildet aus den Summanden 1 und 5. Jeder Code endet auf 11, daher lassen sich aneinandergereihte Codes ohne Längenangabe trennen, nützlich für Kompressionsaufgaben und Protokollentwurf. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
N
6
Erhalten Sie
Fibonacci-Kodierung
10011
Bitlänge
5
Zeckendorf-Terme
1, 5

Die Fibonacci-Kodierung ist ein universeller Binärcode, der jeder positiven Ganzzahl eine eindeutige Bitfolge zuordnet, die stets mit zwei aufeinanderfolgenden Einsen endet. Die Konstruktion stützt sich auf den Satz von Zeckendorf: Jede positive Ganzzahl ist die Summe nicht aufeinanderfolgender Fibonacci-Zahlen der Folge, die mit eins, zwei, drei, fünf, acht und so weiter beginnt. Setzen Sie eine Eins für jeden Summanden, eine Null für jeden ausgelassenen Basiswert ab F zwei und hängen Sie ein abschließendes Terminator-Bit an, damit der Code mit elf endet. Studierende der Informationstheorie, Kompressionsübungen und Protokollentwerfer, die eine selbstbegrenzende Ganzzahlkodierung brauchen, nutzen diesen Umrechner, um Beispiele zu prüfen, ohne die Fibonacci-Tabelle von Hand aufzubauen.

Was Fibonacci-Kodierung ist und warum Codes mit 11 enden

Die Fibonacci-Kodierung gehört zur Familie universeller Codes für positive Ganzzahlen: Jedes n größer oder gleich eins erhält ein Binärwort, und kein Codewort ist Präfix eines anderen, sodass ein Strom von Codes ohne Längenpräfixe geparst werden kann. Die zentrale mathematische Tatsache ist der Satz von Zeckendorf.

Mit der Fibonacci-Folge geschrieben als F zwei gleich eins, F drei gleich zwei, F vier gleich drei, F fünf gleich fünf und so weiter (die übliche Folge ohne die erste Verdopplung der Eins) hat jede positive Ganzzahl eine eindeutige Darstellung als Summe nicht aufeinanderfolgender Terme dieser Folge. Die Kodierung setzt unter jeden Basiswert von F zwei bis zum größten auftretenden Summanden ein Bit: Das Bit ist eins, wenn diese Fibonacci-Zahl verwendet wird, sonst null.

Weil Zeckendorf zwei aufeinanderfolgende Einsen in den Basisbits verbietet, ist das höchste genutzte Bit stets eins und wird innerhalb der Basis nie von einer weiteren Eins gefolgt. Das Anhängen einer einzelnen Terminator-Eins erzeugt daher ein charakteristisches Ende aus zwei aufeinanderfolgenden Einsen. Dieses Muster ist das Stoppsignal des Decoders: Bits lesen, bis elf erscheint, die letzte Eins entfernen und die Zeckendorf-Summe zurückgewinnen.

Klassische kleine Werte machen das Muster greifbar. Eins kodiert sich als elf, zwei als null eins eins, drei als null null eins eins, vier als eins null eins eins, fünf als null null null eins eins und sechs als eins null null eins eins. Ein größeres n verlängert einfach die Fibonacci-Tabelle bis zum größten Fk höchstens n, führt die gierige Auswahl von oben aus und gibt dieselbe terminierte Zeichenkette aus.

Die Code-Länge wächst wie O des Logarithmus zur Basis phi von n, sodass selbst große sichere Ganzzahlen kurze Bitstrings bleiben — geeignet für Demos, Testvektoren und Lehrfolien zu präfixfreien Ganzzahlcodes.

Wofür sich die Fibonacci-Kodierung eignet

Kurse zur Informationstheorie und Kompression nutzen die Fibonacci-Kodierung als konkreten universellen Code neben Elias-Gamma und -Delta; ein Live-Umrechner lässt Studierende Hausaufgabenkodierungen für beliebige positive Ganzzahlen prüfen, ohne jedes Mal eine Fibonacci-Tabelle zu bauen. Wettbewerbsprogrammierung und Algorithmus-Blogs zu Zeckendorf-Darstellungen, Fibonacci-Zahlensystemen oder selbstbegrenzenden Strömen brauchen ein deterministisches Orakel, das Bitstring und Summanden für Unit-Tests liefert. Protokollentwerfer, die variable Ganzzahlkodierungen bewerten, können Fibonacci-Codelängen mit fester Breite und LEB128-artigen Schemata an Beispiel-ID-Folgen vergleichen, bevor sie ein Wire-Format festlegen.

Fehlgeschlagene Validierung wird nicht berechnet.

Hausaufgabenkontrolle in der Informationstheorie

Studierende kodieren positive Ganzzahlen per Hand mit Zeckendorf-Tabellen und prüfen den binären Fibonacci-Code (stets mit 11 endend) gegen ein deterministisches Orakel.

Demos zu Kompression und universellen Codes

Unterrichtsmaterial vergleicht die Länge der Fibonacci-Kodierung mit Elias-Codes an Beispiel-Ganzzahlen und zeigt das Terminator-Muster, das den Strom präfixfrei macht.

Wie wandelt man eine Zahl in Fibonacci-Code um?

Senden Sie eine positive Ganzzahl n (n ≥ 1).

Warum endet jeder Fibonacci-Code mit 11?

Zeckendorf-Bits enden nie mit zwei aufeinanderfolgenden Einsen; nach dem höchsten Basisbit (stets 1) wird ein Terminator 1 angehängt und erzeugt das charakteristische Stoppmuster 11 für eindeutige Dekodierung.

Was geschieht, wenn n null oder negativ ist?

Fibonacci-Kodierung ist nur für positive Ganzzahlen (n ≥ 1) definiert; ungültige Anfragen werden nicht berechnet.

Welche Fibonacci-Folge nutzt der Kodierer?

Die gierige Auswahl liefert die eindeutige Zeckendorf-Expansion ohne aufeinanderfolgende Terme.

Wie lautet der Fibonacci-Code von 12?

12 wird als 101011 kodiert. Die Zeckendorf-Summanden sind 1, 3 und 8, zusammen 12, und die angehängte letzte 1 bildet das abschließende 11, an dem das Ende des Codes erkennbar ist.

Was passiert bei 0 oder einer negativen Zahl?

Solche Eingaben werden abgelehnt. Fibonacci-Codes gibt es nur für positive ganze Zahlen ab 1; auch leere Eingaben und Dezimalzahlen werden nicht kodiert.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/numth/fibonacci-coding

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/numth/fibonacci-coding \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":6}'
{
  "n": 6
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.fibonacci_coding",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Derselbe reine Algorithmus speist das kostenlose Browser-Werkzeug und den kostenpflichtigen API-Pfad, sodass ein goldenes Unterrichtsbeispiel Byte für Byte mit der Produktionsautomatisierung übereinstimmt — ohne Modell und ohne Netz im Löser.

Eingabevertrag, Antwortfelder und Fehlerverhalten

Beispiel: n gleich eins ergibt den Minimalcode elf mit einem einzigen Zeckendorf-Term gleich eins. Beispiel: n gleich zwölf ergibt eins null eins null eins eins mit Summanden eins, drei und acht. Clients, die nur den Bitstring brauchen, können die didaktischen Felder ignorieren; Bewerter und Notebooks können Code und Summanden prüfen, um Off-by-one-Fehler in der Handtabelle der Studierenden zu fangen. Die Implementierung ist reines Parse der Stufe A: kein ausgehendes Netz, keine Zufälligkeit, keine Uhrabhängigkeit, sodass dasselbe n stets dieselbe Nutzlast erzeugt und sicher in automatisierten Gold-Tests festgenagelt werden kann. Senden Sie per POST einen JSON-Körper mit einem einzigen Pflichtfeld n: eine positive Ganzzahl größer oder gleich eins. Der Wert darf als JSON-Zahl im sicheren Ganzzahlbereich oder als Ziffernstring ankommen, der auf denselben Bereich normalisiert wird. Fehlendes n, leere Strings, Nicht-Ganzzahlen, nicht endliche Werte, null und jede negative Zahl scheitern mit invalid_input und werden nicht berechnet. Bei Erfolg spiegelt die Antwort n wider, liefert fibonacci_code als den Binärstring, der stets mit elf endet, meldet bit_length als Zeichenlänge dieses Strings, listet zeckendorf_terms als die aufsteigenden Fibonacci-Summanden, die wieder n ergeben, und enthält eine kurze Formelzeichenkette, die die Konstruktion zur Anzeige neben der Antwort formuliert. Beispiel: n gleich sechs ergibt fibonacci_code eins null null eins eins, bit_length fünf und zeckendorf_terms eins und fünf, weil fünf plus eins sechs ist und die Basisbits von F zwei bis F fünf vor dem Terminator eins, null, null, eins sind.

Wo eine Fibonacci-Kodierungs-API ihren Nutzen zeigt

Weil jeder erfolgreiche Aufruf ein abrechenbares Element zu $0.002 mit analytischen Kosten weit unter dieser Untergrenze ist, bleibt die Fähigkeit günstig für Batch-Bewertungsskripte und Edge-Worker.

Testvektoren für Zeckendorf-Werkzeuge

Skripte für Fibonacci-Numeration oder selbstbegrenzende IDs können fibonacci_code und zeckendorf_terms für viele n festnageln, ohne eine zweite Implementierung einzubetten.

Was kostet der Fibonacci-Kodierungs-Umrechner?

Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorab bezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.

Vollständige KIT-Dokumentation lesen →