Kanonické přiřazení prefixových kódů
Přiřaď kanonické binární prefixové kódy nejvýše 256 symbolům s délkami 1 až 16.
def canonical_codes(lengths):
if type(lengths) is not dict or len(lengths) > 256:
raise ValueError("codes.input")
if any(type(s) is not str or not s or type(n) is not int or
not 1 <= n <= 16 for s,n in lengths.items()):
raise ValueError("codes.length")
result, code, previous = {}, 0, 0
for symbol, length in sorted(lengths.items(), key=lambda p:(p[1],p[0])):
code <<= length-previous
if code >= 1 << length:
raise ValueError("codes.oversubscribed")
result[symbol] = format(code, f"0{length}b")
code += 1
previous = length
return result| Před použitím zkontrolujte | Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu. |
|---|---|
| Modely | Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně. |
| Projekt | Ověř prázdné a neúplné tabulky, shodné délky seřaď podle původních řetězců Unicode a odmítni přeplněné či neplatné délky bez normalizace. |
def canonical_codes(lengths):
if type(lengths) is not dict or len(lengths) > 256:
raise ValueError("codes.input")
if any(type(s) is not str or not s or type(n) is not int or
not 1 <= n <= 16 for s,n in lengths.items()):
raise ValueError("codes.length")
result, code, previous = {}, 0, 0
for symbol, length in sorted(lengths.items(), key=lambda p:(p[1],p[0])):
code <<= length-previous
if code >= 1 << length:
raise ValueError("codes.oversubscribed")
result[symbol] = format(code, f"0{length}b")
code += 1
previous = length
return resultZajistěte reprodukovatelnost změny kódovací tabulky
Když dvě implementace sestaví z téhož popisu různé kódovací tabulky, ladění potřebuje víc než další ukázkový výstup. Codelith poskytuje pro toto zkoumání programovací prostředí s AI pro Windows: otevřete projekt, vložte odlišné výsledky do konverzace a před návrhem změn požádejte připojený model o prověření zdroje rozdílu.
Vhodnou úlohou je přiřazování kanonických prefixových kódů podle délek symbolů. Popište pravidlo řazení pro shodné délky a určete, zda původní řetězce Unicode musí zůstat beze změny. Přiložte příjemce tabulky, aby návrh zohlednil formát, který musí číst. Příklad přiřazování slouží k vymezení kontroly vašeho kódu, nikoli jako kódovací nástroj dodávaný s prostředím.
Požádejte o cílený návrh, který zvolené řazení vyjádří výslovně. Prázdné a neúplné tabulky posuzujte odděleně od délek překračujících kapacitu kódového prostoru a poté spusťte testovací případy formátu v prostředí projektu. Porovnávejte přesné bitové řetězce a přiřazení symbolů. I uspořádaná tabulka může být v rozporu se svým příjemcem. Při kontrole mějte na očích očekávanou serializaci.
Codelith podporuje připojení modelů přes koncové body kompatibilní s OpenAI nebo koncové body Anthropic. Model AI bez omezení lze zvolit, pokud jej poskytovatel nabízí, s přihlašovacími údaji podle potřeby. Kontext, nástroje a omezení řídí zvolený server a model. Zda navržená změna kódování splňuje podmínky aplikace, prokazují vaše testovací případy a kontrola.
Otázky ke změně kódovací tabulky
- Jaké podklady pomohou vysvětlit dvě různé tabulky?
Poskytněte stejný vstup délek symbolů, obě výsledné tabulky a zdokumentovanou konvenci řazení. Určete, kde aplikace tabulku zapisuje nebo čte. Model pak může rozebrat konkrétní nesoulad místo hádání, který výstup formát očekává.
- Mají se symboly Unicode před řazením normalizovat?
Pouze pokud formát tuto transformaci výslovně vyžaduje. Ukázková úloha zachovává původní řetězce a podle nich je řadí. Uveďte konvenci v zadání a ověřte, že navržený kód tiše neslučuje ani nemění odlišné symboly.
- Jsou neúplné tabulky a překročení kapacity kódového prostoru stejné chyby?
Popisují různé stavy a váš formát určuje, které přijímá. Přiložte samostatné testovací případy a očekávané výsledky. Požádejte o zachování rozdílu; nevyužitý kódový prostor sám o sobě nemá být důkazem neplatné tabulky.
- Jak ověřím kompatibilitu se stávající čtečkou?
Prožeňte reprezentativní tabulky zapisovačem a čtečkou projektu a porovnejte přesná přiřazení vyžadovaná formátem. Mění-li návrh řazení, prověřte obě cesty. Úspěšná úprava zdrojového kódu sama o sobě neprokazuje kompatibilitu s dříve uloženými daty.
Codelith · Aktualizováno 2026-10-25