ForHosting KIT · Entwickler-Tools

Fibonacci-Kodierung (Zeckendorf)

Schreiben Sie jede positive ganze Zahl als Fibonacci-Code: 6 ist 5 + 1 und wird daher zu 10011, und jeder Code endet auf 11, sodass er sich in einem Datenstrom ohne Längenangabe erkennen lässt. Das Dekodieren geht den umgekehrten Weg. 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
Wert
6
Berechnungsmodus
Encode
Erhalten Sie
Eingabe
6
Code
10011
Bits
10011
Länge
5

Die Fibonacci-Kodierung, auch Zeckendorf-Kodierung genannt, schreibt jede positive ganze Zahl als eindeutige Summe nicht aufeinanderfolgender Fibonacci-Zahlen und packt diese Summe in eine selbstbegrenzte Bitkette, die stets mit dem Terminator 11 endet. Lernende, die Universalcodes erstmals kennenlernen, Lehrende, die Prüfungsorakel bauen, und Ingenieure, die Elias-Gamma-, Golomb- und Fibonacci-Codes vergleichen, brauchen dieselbe deterministische Abbildung in beide Richtungen: von der Zahl zu Bits und von Bits zur Zahl, mit ehrlichem Fehler bei null, negativ, nicht binär oder nicht kanonischem Zeckendorf-Layout.

Was Zeckendorf-Darstellung und Fibonacci-Kodierung bedeuten

Der Satz von Zeckendorf besagt, dass jede positive ganze Zahl eine eindeutige Darstellung als Summe von Fibonacci-Zahlen besitzt, in der keine zwei Summanden in der Fibonacci-Folge aufeinanderfolgen. Die übliche Kodierungskonvention beginnt die nutzbare Folge bei F2 gleich 1, F3 gleich 2, F4 gleich 3, F5 gleich 5 und so weiter und lässt absichtlich das doppelte F1 gleich 1 aus, damit die Eindeutigkeit unzweideutig bleibt. Zum Kodieren von n wählen Sie gierig die größte Fibonacci-Zahl, die den Rest nicht übersteigt, überspringen den nächstniedrigeren Nachbarn und wiederholen, bis der Rest null ist.

Der Fibonacci-Code ist dann die Bitmaske dieser Terme von F2 bis zum größten verwendeten Term, von niedrigem zu hohem Index geschrieben, plus ein zusätzliches terminierendes 1. Klassische kleine Werte fixieren das mentale Modell: 1 kodiert als 11, 2 als 011, 3 als 0011, 4 als 1011, 5 als 00011 und 6 als 10011. Gerade diese Eindeutigkeit macht die Fibonacci-Kodierung populär beim Lehren von Universalcodes und in Entwürfen, die variable Längenpräfixe für ganze Zahlen ohne Wörterbuch brauchen.

Wo Fibonacci-Kodierung in der Praxis Nutzen stiftet

Unterricht und MOOC-Plattformen nutzen einen Rechner für Fibonacci-Kodierung, damit Lernende Zeckendorf-Hausaufgaben prüfen, ohne lange Fibonacci-Tafeln von Hand abzuschreiten und ohne den Code mit den separaten math.fibonacci-Werkzeugen des n-ten Terms zu verwechseln. Kurse in Wettbewerbsprogrammierung und Informationstheorie brauchen ein bidirektionales Orakel, das das Codewort erzeugt und illegale Bitketten ablehnt, abgestimmt auf Contest-Checker, die jede nicht kanonische oder termweise aufeinanderfolgende Kodierung als falsch werten. Datenqualitätsjobs können kompakte selbstbegrenzte Integer-Präfixe speichern und später durch Dekodieren und Neukodieren prüfen.

In jedem Workflow behandeln Sie einen gültigen Code nur als wohlgeformte Ganzzahlverpackung, nicht als Authentifizierung oder Geheimnis: Fibonacci-Kodierung ist ein transparenter Universalcode, keine Verschlüsselung. Halten Sie Werte im sicheren Integer-Bereich dieses Tier-A-Workers, pinnen Sie erwartete Codeketten in Tests und erhalten Sie deterministisches Encode und Decode für Lehre, Bewertung und leichte Werkzeuge, ohne einen eigenen Computer-Algebra-Stack aufzubauen.

Demos und Notebooks zu Universalcodes

Vergleichen Sie Fibonacci-Codelängen mit Elias- oder unären Präfixen für dieselben positiven ganzen Zahlen in Lehr-Notebooks, ohne den gierigen Weg jedes Mal neu zu implementieren.

Selbstbegrenzte Integer-Präfixe

Kodieren Sie kleine positive IDs als Fibonacci-Bitketten, die mit 11 enden; dekodieren und neukodieren Sie danach in Pipelines, damit gespeicherte Präfixe kanonisch bleiben.

Wie kodiert man eine Zahl mit Fibonacci-Kodierung?

Setzen Sie mode auf encode und value auf eine positive ganze Zahl.

Wie dekodiert man einen Fibonacci-Code?

Setzen Sie mode auf decode und value auf eine 0/1-Bitkette, die mit 11 endet.

Warum müssen Codes mit 11 enden?

Fibonacci-Codes hängen nach der Zeckendorf-Bitmaske ein Terminator-1 an; der höchste verwendete Term ist stets ein 1, daher endet jedes gültige Codewort mit 11 und ist in einem Bitstrom selbstbegrenzt.

Warum lässt sich null nicht mit Fibonacci kodieren?

Die Zeckendorf-Regel gilt nur für positive ganze Zahlen: Für null gibt es keine Summe von Fibonacci-Zahlen. Null und negative Zahlen werden Ihnen deshalb mit einer klaren Meldung abgewiesen, statt einen erfundenen Code zu liefern.

Warum wird ein Code mit zwei 1-Bits hintereinander vor dem Ende abgelehnt?

Zwei nebeneinanderliegende 1-Bits stünden für zwei aufeinanderfolgende Fibonacci-Zahlen, die in der Zeckendorf-Form nie vorkommen. Eine solche Folge ist nicht der gültige Code ihrer Zahl, daher lehnt das Dekodieren sie ab, statt zu raten.

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/enc/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/enc/fibonacci-coding \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"encode","value":"6"}'
{
  "mode": "encode",
  "value": "6"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.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.

Diese Fähigkeit implementiert den Standardweg F2=1, F3=2, F4=3 als reine Parse-Logik, die vom kostenlosen Browser-Werkzeug und der KIT-API geteilt wird, damit Hausaufgaben, LMS-Plugins und Produktionspipelines bei einem Codewort nie abweichen. Erfolgreiche API-Aufrufe nutzen das Prepaid-Guthaben zum veröffentlichten Basispreis $0.002; ungültige Eingaben werden nicht berechnet.

Was Zeckendorf-Darstellung und Fibonacci-Kodierung bedeuten

Weil der höchste verwendete Term stets ein abschließendes Payload-1 beiträgt, endet jeder gültige Code mit dem Zwei-Bit-Muster 11, wodurch der Code in einem Strom ohne separates Längenfeld selbstbegrenzt ist. Die Dekodierung kehrt den Weg um: das abschließende Terminatorbit entfernen, F2, F3, … dort summieren, wo die Payload-Bits 1 sind, und optional neu kodieren, um zu beweisen, dass die Bitkette das kanonische Zeckendorf-Layout war und nicht eine alternative Summe mit aufeinanderfolgenden Fibonacci-Zahlen.

Eingabevertrag, Antwortform und Validierungsfehler

Mode muss encode oder decode sein (Aliase op, action und direction werden akzeptiert). Mode decode und value 10011 ergibt value 6 mit derselben Zerlegung. Fehlgeschlagene Validierung wird nicht berechnet. Senden Sie JSON per POST mit zwei Pflichtfeldern. Value für encode ist eine positive ganze Zahl als JSON-Zahl oder reine Ziffernkette im sicheren Integer-Bereich von JavaScript bis 9007199254740991; null, Negative, Brüche, führende Nullen bei mehrstelligen Ketten und nicht numerischer Text scheitern mit invalid_input und benennen das Problem. Value für decode ist eine Bitkette aus den Zeichen 0 und 1, die mit 11 endet; optionale Leerzeichen oder Unterstriche werden entfernt, aber jedes andere Zeichen, eine leere Kette, ein zu langer Code, eine Payload mit aufeinanderfolgenden 1-Bits oder ein Layout, das nicht die kanonische Neukodierung der dekodierten Zahl ist, wird abgelehnt. Bei Erfolg liefern beide Modi mode, die gespiegelte Eingabe, value als Ganzzahl, code und bits als Fibonacci-Bitkette, length, zeckendorf als Summanden von hoch nach niedrig, zeckendorf_sum als Anzeigekette wie 5+1, fibonacci_indices als F-Index jedes Summanden, algorithm auf fibonacci_coding und representation auf Zeckendorf. Beispiel: mode encode und value 6 ergibt code 10011 mit zeckendorf 5 plus 1.

Wo Fibonacci-Kodierung in der Praxis Nutzen stiftet

Kompressions- und Codec-Skizzen vergleichen oft Fibonacci-Codes mit Elias-Gamma und unär für kleine positive ganze Zahlen; eine kleine API, die Länge und Summanden liefert, macht Notebook-Experimente und Blog-Demos reproduzierbar.

Zeckendorf-Prüfungen für Hausaufgaben und Klausuren

Lernende senden eine ganze Zahl oder eine Kandidaten-Bitkette; die API liefert den kanonischen Fibonacci-Code und die Summanden oder invalid_input, wenn aufeinanderfolgende 1-Bits die Zeckendorf-Regeln verletzen.

Welche Eingaben werden abgelehnt?

Null, Negative, Nicht-Ganzzahlen, nicht binäre Decode-Ketten, Codes ohne den Terminator 11, Payloads mit aufeinanderfolgenden 1-Bits und nicht kanonische Layouts scheitern mit invalid_input und werden nicht berechnet.

Was kostet die Fibonacci-Zeckendorf-Kodierung?

Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingaben werden nie berechnet.

Vollständige KIT-Dokumentation lesen →