ForHosting KIT · Strumenti per sviluppatori

Codifica di Fibonacci (Zeckendorf)

Scriva qualsiasi intero positivo come codice di Fibonacci: 6 è 5 + 1, quindi diventa 10011, e ogni codice finisce con 11, così si riconosce in una sequenza senza indicarne la lunghezza. La decodifica fa il percorso inverso. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Valore
6
Modalità di calcolo
Encode
Ottiene
Input
6
Codice
10011
Bit
10011
Lunghezza
5

La codifica di Fibonacci, detta anche codifica di Zeckendorf, scrive ogni intero positivo come somma unica di numeri di Fibonacci non consecutivi e impacchetta quella somma in una stringa di bit autodelimitata che termina sempre con il terminatore 11. Studenti che incontrano i codici universali per la prima volta, docenti che costruiscono oracoli d'esame e ingegneri che confrontano codici Elias gamma, Golomb e Fibonacci hanno bisogno della stessa mappa deterministica in entrambe le direzioni: da intero a bit e da bit a intero, con fallimento onesto quando l'ingresso è zero, negativo, non binario o non è il layout canonico di Zeckendorf.

Cosa significano la rappresentazione di Zeckendorf e la codifica di Fibonacci

Il teorema di Zeckendorf afferma che ogni intero positivo ha una rappresentazione unica come somma di numeri di Fibonacci in cui nessun due addendi sono consecutivi nella sequenza. La convenzione di codifica usuale inizia la sequenza utilizzabile a F2 uguale a 1, F3 uguale a 2, F4 uguale a 3, F5 uguale a 5, e così via, omettendo di proposito il duplicato F1 uguale a 1 affinché l'unicità sia inequivocabile.

Per codificare n Lei sceglie in modo avido il maggiore Fibonacci che non superi il resto, salta il vicino inferiore successivo e ripete finché il resto è zero. Il codice di Fibonacci è allora la maschera di bit di quei termini da F2 fino al maggiore usato, scritta dall'indice basso all'alto, più un 1 terminatore extra. I valori classici fissano il modello mentale: 1 si codifica come 11, 2 come 011, 3 come 0011, 4 come 1011, 5 come 00011 e 6 come 10011.

Quell'unicità è proprio il motivo per cui la codifica di Fibonacci è popolare nell'insegnamento dei codici universali e in progetti che necessitano di prefissi interi a lunghezza variabile senza dizionario.

Dove la codifica di Fibonacci conviene nella pratica

Aule e piattaforme MOOC usano un calcolatore di codifica di Fibonacci affinché gli studenti verifichino i compiti di Zeckendorf senza scorrere a mano lunghe tabelle e senza confondere il codice con gli strumenti separati math.fibonacci dell'n-esimo termine. Corsi di programmazione competitiva e teoria dell'informazione necessitano di un oracolo bidirezionale che produca la parola di codice e rifiuti stringhe illegali, allineato ai correttori di contest che segnano errata ogni codifica non canonica o con termini consecutivi.

Lavori di qualità dei dati possono memorizzare prefissi interi compatti autodelimitati e verificarli in seguito decodificando e ricodificando. In ogni flusso tratti un codice valido solo come impacchettamento intero ben formato, non come autenticazione o segretezza: la codifica di Fibonacci è un codice universale trasparente, non crittografia. Mantenga i valori nell'intervallo di interi sicuri di questo worker tier-A, fissi le stringhe di codice attese nei test e ottenga encode e decode deterministici per didattica, valutazione e strumenti leggeri senza montare un proprio stack di algebra computazionale.

Demo e notebook sui codici universali

Confronti lunghezze di codice di Fibonacci con prefissi Elias o unari per gli stessi interi positivi in notebook didattici senza reimplementare ogni volta il percorso avido.

Prefissi interi autodelimitati

Codifichi piccoli ID positivi come stringhe di bit Fibonacci che terminano con 11, poi decodifichi e ricodifichi nelle pipeline per garantire che i prefissi memorizzati restino canonici.

Come si codifica un numero con la codifica di Fibonacci?

Imposti mode su encode e value su un intero positivo.

Come si decodifica un codice di Fibonacci?

Imposti mode su decode e value su una stringa di bit 0/1 che termina con 11.

Perché i codici devono terminare con 11?

I codici di Fibonacci aggiungono un 1 terminatore dopo la maschera di bit di Zeckendorf; il termine di indice più alto è sempre un 1, quindi ogni parola di codice valida termina con 11 ed è autodelimitata in un flusso di bit.

Perché non si può codificare lo zero?

La regola di Zeckendorf riguarda solo gli interi positivi: lo zero non ha una somma di numeri di Fibonacci da scrivere. Per questo zero e numeri negativi vengono rifiutati con un messaggio chiaro invece di produrre un codice inventato.

Perché un codice con due bit 1 di seguito prima della fine viene rifiutato?

Due bit 1 affiancati indicano due numeri di Fibonacci consecutivi, che la forma di Zeckendorf non usa mai. Quella stringa non è il codice valido del suo numero, quindi la decodifica la rifiuta invece di tirare a indovinare.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

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

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

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"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Questa capacità implementa il percorso standard F2=1, F3=2, F4=3 come logica parse pura condivisa dallo strumento gratuito del browser e dall'API KIT, così compiti, plugin LMS e pipeline di produzione non divergono mai su una parola di codice. Le chiamate API riuscite usano il saldo prepagato al prezzo base pubblicato $0.002; l'ingresso non valido non viene fatturato.

Cosa significano la rappresentazione di Zeckendorf e la codifica di Fibonacci

Poiché il termine di indice più alto contribuisce sempre un 1 finale di payload, ogni codice valido termina con il pattern a due bit 11, che rende il codice autodelimitato in un flusso senza un campo di lunghezza separato. La decodifica inverte il percorso: si toglie il bit terminatore finale, si sommano F2, F3, … dove i bit di payload sono 1 e, opzionalmente, si ricodifica per dimostrare che la stringa era il layout canonico di Zeckendorf e non una somma alternativa con Fibonacci consecutivi.

Contratto di ingresso, forma della risposta ed errori di validazione

Mode decode e value 10011 produce value 6 con la stessa scomposizione. La validazione fallita non consuma il saldo prepagato. Invii JSON in POST con due campi obbligatori. Mode deve essere encode o decode (sono accettati gli alias op, action e direction). Value per encode è un intero positivo come numero JSON o stringa di sole cifre entro l'intervallo di interi sicuri di JavaScript fino a 9007199254740991; zero, negativi, frazioni, zeri iniziali su stringhe a più cifre e testo non numerico falliscono con invalid_input indicando il problema. Value per decode è una stringa di bit di caratteri 0 e 1 che termina con 11; spazi o underscore opzionali vengono rimossi, ma qualsiasi altro carattere, una stringa vuota, un codice troppo lungo, un payload con bit 1 consecutivi o un layout che non è la ricodifica canonica dell'intero decodificato viene rifiutato. In caso di successo entrambi i modi restituiscono mode, l'ingresso in eco, value come intero, code e bits come la stringa Fibonacci, length, zeckendorf come gli addendi dal maggiore al minore, zeckendorf_sum come stringa di visualizzazione tipo 5+1, fibonacci_indices come l'indice F di ciascun addendo, algorithm impostato a fibonacci_coding e representation impostata a Zeckendorf. Esempio: mode encode e value 6 produce code 10011 con zeckendorf 5 più 1.

Dove la codifica di Fibonacci conviene nella pratica

Bozze di compressione e codec spesso confrontano i codici di Fibonacci con Elias gamma e unario per piccoli interi positivi; una piccola API che restituisce lunghezza e addendi rende riproducibili esperimenti in notebook e demo.

Controlli Zeckendorf per compiti ed esami

Gli studenti inviano un intero o una stringa di bit candidata; l'API restituisce il codice di Fibonacci canonico e gli addendi, oppure invalid_input quando bit 1 consecutivi violano le regole di Zeckendorf.

Quali ingressi vengono rifiutati?

Zero, negativi, non interi, stringhe di decode non binarie, codici senza il terminatore 11, payload con bit 1 consecutivi e layout non canonici falliscono con invalid_input e non vengono fatturati.

Quanto costa la codifica Fibonacci Zeckendorf?

Lo strumento del browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'ingresso non valido non consuma saldo.

Leggi la documentazione completa del KIT →