Kódování binárních mřížek čtyřstromem
Zakódujte čtvercovou binární mřížku s šířkou mocniny dvou nejvýše 16 jako čtyřstrom s jednotnými listy.
def encode_quadtree(grid):
grid = tuple(tuple(row) for row in grid)
n = len(grid)
if not 1 <= n <= 16 or n & (n - 1) or any(len(row) != n for row in grid):
raise ValueError("grid.shape")
if any(type(v) is not int or v not in (0, 1) for row in grid for v in row):
raise ValueError("cell.binary")
def visit(x, y, size):
value = grid[y][x]
if all(grid[r][c] == value for r in range(y, y + size) for c in range(x, x + size)):
return value
half = size // 2
return (visit(x, y, half), visit(x + half, y, half),
visit(x, y + half, half), visit(x + half, y + half, half))
return visit(0, 0, n)Projekt
Ověřte pořadí vlevo nahoře, vpravo nahoře, vlevo dole a vpravo dole, odmítejte prázdné, nepravidelné či nebinární mřížky beze změny.
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ě.
def encode_quadtree(grid):
grid = tuple(tuple(row) for row in grid)
n = len(grid)
if not 1 <= n <= 16 or n & (n - 1) or any(len(row) != n for row in grid):
raise ValueError("grid.shape")
if any(type(v) is not int or v not in (0, 1) for row in grid for v in row):
raise ValueError("cell.binary")
def visit(x, y, size):
value = grid[y][x]
if all(grid[r][c] == value for r in range(y, y + size) for c in range(x, x + size)):
return value
half = size // 2
return (visit(x, y, half), visit(x + half, y, half),
visit(x, y + half, half), visit(x + half, y + half, half))
return visit(0, 0, n)Udržte změnu reprezentace srozumitelnou na obou stranách
QuadPollen je prostředí pro programování s AI ve Windows pro vývojáře měnící způsob reprezentace strukturovaných dat v aplikaci. Otevřete složku projektu a popište kontrakt mezi kódem vytvářejícím data a kódem, který je používá. Rozhovor s připojeným modelem pomůže prozkoumat toto rozhraní, vysvětlit současnou reprezentaci a posoudit cílený návrh před přijetím změn na kterékoli straně.
Úloha založená na quadtree.py může zkoumat převod binární mřížky na vnořenou reprezentaci. Ptejte se na přijímané velikosti vstupu, reprezentaci jednotných oblastí a závislost navazujícího kódu na konkrétním pořadí potomků. Použijte malé mřížky s nezávisle ověřitelnou očekávanou strukturou. Příklad ukotvuje kontrolu softwaru; nedokládá zabudovanou prostorovou databázi ani službu optimalizace úložiště.
Model AI bez filtrů můžete vybrat přes podporovaný koncový bod kompatibilní s OpenAI nebo koncový bod Anthropic, pokud jej služba poskytuje. Nastavte požadované připojení a prozkoumejte skutečnou podporu nástrojů modelu. Návrh změny prověřte vůči kódu vytvářejícímu i přijímajícímu data a pak spusťte testy jednotných i smíšených dat. Zachování zamýšlené reprezentace je stejně důležité jako přijetí platného vstupu, zvlášť když kompaktní kódování znesnadňuje odhalení chyby pořadí v běžném výstupu aplikace.
Otázky ke změnám reprezentace
- Jaká malá mřížka je užitečná pro kontrolu?
Použijte mřížku s viditelně odlišnými oblastmi, aby chyba pořadí změnila očekávanou strukturu. Jako samostatný případ zahrňte jednotnou mřížku. Zamýšlenou reprezentaci dodejte výslovně, místo abyste nový kodér požádali o vytvoření vlastního očekávaného výsledku.
- Může se reprezentace změnit bez úpravy navazujícího kódu?
Pouze pokud zůstane splněn jeho kontrakt. Před přijetím změny kódování zkontrolujte kód čtoucí pozice potomků, hodnoty listů nebo vnoření. To, že producent dat projde vlastními testy, neprokazuje kompatibilitu s uloženými daty ani dalšími komponentami aplikace.
- Mají být větší vstupy přijímány automaticky?
Ne. Nejprve prověřte důvody současných mezí a požadavky volajícího. Větší struktury mohou změnit využití zdrojů a potřeby validace. Rozšíření považujte za záměrný požadavek s odpovídajícími kontrolami, nikoli vedlejší účinek refaktoringu.
- Jak kontrolovat obtížně čitelný výstup?
Začněte malými vstupy a každou vrácenou oblast porovnejte s původními daty. Požadujte vysvětlení vztahující se k pozicím, nikoli obecný popis. Potom ověřte navazující chování, aby význam reprezentace zůstal na obou stranách rozhraní konzistentní.
QuadPollen · Aktualizováno 2026-10-25