Hammingova vzdálenost bajtů
Spočítejte odlišné bity dvou stejně dlouhých bajtových řetězců.
def bit_distance(left, right):
if type(left) is not bytes or type(right) is not bytes:
raise ValueError("byte strings required")
if len(left) != len(right): raise ValueError("equal lengths required")
return sum((a ^ b).bit_count() for a, b in zip(left, right))| 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ěřte prázdný vstup a opačné bajty a odmítněte odlišné délky i jiné typy bez změny vstupů. |
def bit_distance(left, right):
if type(left) is not bytes or type(right) is not bytes:
raise ValueError("byte strings required")
if len(left) != len(right): raise ValueError("equal lengths required")
return sum((a ^ b).bit_count() for a, b in zip(left, right))Dohodněte, co binární rozdíl počítá
BitKestrel poskytuje prostředí pro programování s AI ve Windows k převodu přesného požadavku na prohlédnutelnou změnu zdrojového kódu. Když binární porovnání vytvoří nečekaný výsledek, přineste do projektové konverzace testovací vstupy a očekávaný počet. Před žádostí o opravu požádejte připojený model o nalezení výpočtu a vysvětlení toho, co nyní počítá.
Úkol může například vyžadovat počítání rozdílných bitů mezi stejně dlouhými bajtovými řetězci. To se liší od počítání změněných bajtových pozic a rozdíl je důležitý pro volající interpretující výsledek. Uveďte přijímané typy vstupu, pravidlo pro nestejné délky a očekávanou odpověď pro opačné bajty. Při diskusi o navržené úpravě zachovejte viditelný stávající konzumentský kód.
Úpravu prověřte proti prázdnému vstupu, shodným hodnotám a případu, kdy jeden bajt obsahuje několik změněných bitů. Vlastními testy ověřte, že odmítané délky projdou zamýšlenou chybovou cestou a původní vstupy zůstanou nedotčené. Užitečným výsledkem je shoda kódu, testovacích případů a významu výsledku, nikoli stručnost.
Pro poskytnutí modelu vyberte podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic. Nabízí-li nefiltrovaný model AI, jeho výběr stále podléhá skutečným podmínkám modelu a serveru. Mohou být nutné přihlašovací údaje; dostupný kontext a nástroje závisí na připojení. BitKestrel ponechává konečnou kontrolu kódu a ověření projektu na vás.
Definování úkolu binárního porovnání
Jak odliším počet bitů od počtu bajtů?
Dodejte test, v němž se jeden bajt liší na více bitových pozicích, a stanovte očekávaný výsledek. Požádejte model o vysvětlení, kterou veličinu současná implementace vrací. Požadavek bude konkrétní ještě před změnou rutiny nebo volajícího kódu.
Co se má stát, když mají vstupy různé délky?
Stanovte pravidlo potřebné pro aplikaci. Ukázkový úkol odmítá nestejné délky namísto tichého ignorování nespárovaných dat. Zahrňte očekávané zpracování chyby volajícím a ověřte je v projektu, aby se odmítnutí nestalo nečekaným selháním aplikace.
Potřebuje prázdné porovnání testovací případ?
Ano, pokud smluvené chování přijímá prázdné bajtové řetězce. Stanovte očekávaný počet a přímo jej zkontrolujte. Tento malý případ také pomáhá odhalit, zda návrh předpokládá alespoň jeden prvek nebo zbytečně mění vstup.
Mohou binární testovací data obsahovat citlivé informace?
Mohou kódovat důvěrná data stejně jako text. Upřednostněte krátké umělé bajtové řetězce reprodukující problém s počítáním. Sdílejte pouze kontext potřebný ke kontrole a zohledněte nastavený koncový bod modelu i samostatné služby používané připojenými nástroji.
BitKestrel · Aktualizováno 2026-10-25