Codage quadtree de grilles binaires
Encodez une grille binaire carrée de largeur puissance de deux au plus égale à 16 dans un quadtree à feuilles uniformes.
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)Projet
Vérifiez l’ordre haut gauche, haut droit, bas gauche et bas droit, en rejetant les grilles vides, irrégulières ou non binaires sans les modifier.
Vérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
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)Gardez un changement de représentation compréhensible des deux côtés
QuadPollen est un espace de programmation avec IA sous Windows pour modifier la représentation des données structurées d’une application. Ouvrez le dossier du projet et décrivez le contrat entre le code producteur et son consommateur. La conversation connectée peut aider à examiner cette frontière, expliquer la représentation actuelle et évaluer une proposition ciblée avant d’accepter des changements de part et d’autre.
Une tâche fondée sur quadtree.py pourrait étudier la transformation d’une grille binaire en représentation imbriquée. Demandez quelles tailles d’entrée sont acceptées, comment les régions uniformes sont représentées et si les consommateurs dépendent d’un ordre particulier des enfants. Utilisez de petites grilles dont la structure attendue peut être examinée indépendamment. L’exemple ancre une revue logicielle ; il n’établit pas une base spatiale intégrée ou un service d’optimisation du stockage.
Vous pouvez sélectionner un modèle d’IA sans filtrage via un point de terminaison compatible OpenAI ou Anthropic pris en charge lorsque le service en propose un. Configurez les paramètres de connexion requis et examinez les outils réellement pris en charge par le modèle. Comparez le correctif aux producteurs et consommateurs, puis testez des données uniformes et mixtes. Préserver la représentation voulue importe autant qu’accepter les entrées valides, surtout quand un encodage compact rend une erreur d’ordre difficile à voir dans la sortie ordinaire de l’application.
Questions sur les changements de représentation
- Quelle petite grille est utile pour la revue ?
Utilisez une grille aux régions visiblement différentes pour qu’une erreur d’ordre change la structure attendue. Incluez séparément une grille uniforme. Fournissez explicitement la représentation voulue au lieu de demander au nouvel encodeur de générer son propre résultat attendu.
- Peut-on changer la représentation sans mettre à jour les consommateurs ?
Seulement si leur contrat reste respecté. Examinez le code qui lit les positions des enfants, les valeurs des feuilles ou l’imbrication avant d’accepter un changement d’encodage. Réussir les tests du producteur ne prouve pas la compatibilité avec les données stockées ou les autres composants.
- Faut-il accepter automatiquement de plus grandes entrées ?
Non. Examinez d’abord la raison des bornes existantes et les besoins de l’appelant. Des structures plus grandes peuvent changer l’utilisation des ressources et les besoins de validation. Traitez cette extension comme une exigence délibérée avec ses vérifications, pas comme un effet secondaire de refactorisation.
- Comment examiner une sortie difficile à lire ?
Commencez par de petites entrées et comparez chaque région renvoyée aux données d’origine. Demandez une explication liée aux positions plutôt qu’une description générique. Vérifiez ensuite le comportement consommateur pour garder le sens de la représentation cohérent de part et d’autre.
QuadPollen · Mis à jour 2026-10-25