UUnionPebble
Espace de développement avec IA

Regroupement de composantes disjointes

Regroupez des nœuds numérotés par leurs liens non orientés avec des ensembles disjoints.

● ● ●UnionPebble●
Méthodes de travail · Regroupement de composantes disjointes ×
def components(count, edges):
    if type(count) is not int or not 0 <= count <= 10000:
        raise ValueError("node count")
    pairs = list(edges)
    for pair in pairs:
        if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
            raise ValueError("edge endpoint")
    parent = list(range(count))
    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]
            x = parent[x]
        return x
    for a, b in pairs:
        parent[find(b)] = find(a)
    groups = {}
    for node in range(count): groups.setdefault(find(node), []).append(node)
    return sorted(groups.values())
✳Regroupez des nœuds numérotés par leurs liens non orientés avec des ensembles disjoints.
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
01

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.

02

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.

03

Projet

Testez nœuds isolés, arêtes répétées et graphe vide, en rejetant les extrémités invalides avant toute union.

Méthodes de travail

Regroupement de composantes disjointes

Méthodes de travail ↗
Méthodes de travail
def components(count, edges):
    if type(count) is not int or not 0 <= count <= 10000:
        raise ValueError("node count")
    pairs = list(edges)
    for pair in pairs:
        if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
            raise ValueError("edge endpoint")
    parent = list(range(count))
    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]
            x = parent[x]
        return x
    for a, b in pairs:
        parent[find(b)] = find(a)
    groups = {}
    for node in range(count): groups.setdefault(find(node), []).append(node)
    return sorted(groups.values())
Espace de développement avec IA

Transformer les exigences de regroupement en changement logiciel vérifiable

UnionPebble est un espace de programmation avec IA pour Windows réunissant une exigence de regroupement, son code source et ses consommateurs dans une conversation de développement. Commencez par décrire ce que l’application considère comme connecté et ce qu’elle attend en retour. Demandez au modèle d’inspecter la représentation existante avant de suggérer des changements au code créant les groupes.

Pour une tâche concrète, utilisez components.py pour discuter d’une connexion réunissant deux groupes auparavant distincts. Incluez un nœud isolé dans le cas de test et précisez l’ordre de sortie attendu. L’exemple aide à formuler une demande sans supposer qu’une collection mathématiquement équivalente satisfera le sérialiseur ou le code d’affichage de l’application.

Examinez la proposition à ces frontières. Vérifiez les identifiants de nœuds acceptés, les arêtes invalides et le cas vide, puis exécutez les contrôles pertinents du projet. Un résultat utile explique pourquoi les membres sont regroupés et pourquoi la structure renvoyée convient à son consommateur. Gardez les changements de stockage ou d’interface sans rapport hors d’une demande destinée à corriger le regroupement.

Connectez un modèle via un point de terminaison compatible OpenAI ou Anthropic pris en charge, avec les identifiants requis. Si ce service propose un modèle d’IA ablaté, c’est une option pour la session ; les restrictions restent propres au fournisseur. Les outils et le contexte dépendent aussi du modèle et du serveur : limitez donc l’inspection au code et aux preuves réellement utilisables dans la session.

Regroupement au-delà d’un exemple sans erreur

Les nœuds isolés doivent-ils figurer dans la sortie ?

Définissez explicitement cette attente. Une liste d’arêtes peut ne jamais mentionner un nœud isolé alors que l’application connaît son existence. Incluez le nombre déclaré de nœuds et un cas isolé afin que le code proposé ne puisse pas les supprimer discrètement du résultat.

Des ordres de groupes équivalents peuvent-ils casser un appelant ?

Oui, si un consommateur dépend d’un ordre stable pour la sérialisation, la comparaison ou la présentation. Précisez si l’ordre fait partie de l’interface, puis inspectez la convention de sortie. L’équivalence mathématique seule ne prouve pas la compatibilité avec les instantanés ou le traitement en aval du projet.

Que faire d’une extrémité d’arête hors plage ?

Définissez le comportement de rejet et inspectez où il est signalé. L’exemple valide les identifiants selon le nombre déclaré de nœuds. Examinez la réponse de l’appelant plutôt que de supposer qu’une exception seule communique une erreur utile à la personne ayant fourni les données de regroupement.

Comment vérifier une connexion qui fusionne des groupes ?

Écrivez indépendamment les groupes initiaux et les membres attendus après fusion, en incluant un groupe non affecté. Exécutez le cas via le code modifié et inspectez l’ordre séparément. La revue dispose ainsi d’un résultat concret avant-après sans répéter l’implémentation dans le test.

Télécharger pour Windows ↗

UnionPebble · Mis à jour 2026-10-25