FForellin
Espace de développement avec IA

Forêts couvrantes minimales

Trouvez une forêt couvrante minimale pour au plus 64 nœuds et 1024 arêtes de poids entiers dans ±10^9.

● ● ●Forellin●
Méthodes de travail · Forêts couvrantes minimales ×
def spanning_forest(count, edges):
    if type(count) is not int or not 0 <= count <= 64 or type(edges) is not list or len(edges) > 1024:
        raise ValueError("forest.input")
    ordered = []
    for edge in edges:
        if type(edge) not in (list, tuple) or len(edge) != 3 or any(type(x) is not int for x in edge):
            raise ValueError("forest.edge")
        a, b, weight = edge
        if not 0 <= a < count or not 0 <= b < count or abs(weight) > 10**9:
            raise ValueError("forest.bounds")
        ordered.append((weight, min(a, b), max(a, b)))
    parent = list(range(count))
    def root(node):
        while parent[node] != node:
            parent[node] = parent[parent[node]]
            node = parent[node]
        return node
    selected, total = [], 0
    for weight, a, b in sorted(ordered):
        x, y = root(a), root(b)
        if x != y:
            parent[x] = y
            selected.append((a, b, weight))
            total += weight
    return total, selected
✳Forêts couvrantes minimales
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
  1. 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.

  2. 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.

  3. Projet

    Testez les nœuds isolés, arêtes parallèles, boucles et égalités déterministes, en rejetant extrémités invalides et booléens sans modifier l’entrée.

Méthodes de travail

Forêts couvrantes minimales

Méthodes de travail ↗
Méthodes de travail
def spanning_forest(count, edges):
    if type(count) is not int or not 0 <= count <= 64 or type(edges) is not list or len(edges) > 1024:
        raise ValueError("forest.input")
    ordered = []
    for edge in edges:
        if type(edge) not in (list, tuple) or len(edge) != 3 or any(type(x) is not int for x in edge):
            raise ValueError("forest.edge")
        a, b, weight = edge
        if not 0 <= a < count or not 0 <= b < count or abs(weight) > 10**9:
            raise ValueError("forest.bounds")
        ordered.append((weight, min(a, b), max(a, b)))
    parent = list(range(count))
    def root(node):
        while parent[node] != node:
            parent[node] = parent[parent[node]]
            node = parent[node]
        return node
    selected, total = [], 0
    for weight, a, b in sorted(ordered):
        x, y = root(a), root(b)
        if x != y:
            parent[x] = y
            selected.append((a, b, weight))
            total += weight
    return total, selected
Espace de développement avec IA

Intégrez les entrées déconnectées au contrat du logiciel de graphes

Forellin offre aux développeurs un espace de programmation assistée par IA sous Windows pour examiner le traitement de graphes avec l’application qui en dépend. Commencez une conversation de projet par la représentation d’entrée et le résultat nécessaire au code appelant. Demandez à l’assistant d’examiner la gestion des connexions manquantes, des arêtes répétées et de l’ordre de sortie avant de proposer une modification. Ces choix façonnent la fonctionnalité autant que le calcul central.

Le contexte spanning_forest.py suggère une tâche où les nœuds déconnectés sont attendus plutôt que considérés comme un échec de connexion globale. Vous pourriez demander au modèle d’expliquer quelles arêtes sont sélectionnées et comment le total leur correspond. Vérifiez la réponse sur un petit graphe calculable à la main, puis demandez une correction ciblée si le contrat de résultat ou la validation doit être ajusté.

Exécutez les vérifications du projet sur des entrées connectées et déconnectées et examinez la représentation des nœuds isolés dans l’application environnante. Si plusieurs résultats sont valides, convenez de l’importance d’une sélection déterministe pour le code utilisateur. Forellin accepte les points de terminaison compatibles OpenAI ou Anthropic pris en charge, avec des identifiants si nécessaire. Un modèle d’IA sans filtre peut être choisi lorsqu’il est proposé, mais ses restrictions, ses outils et sa capacité de contexte dépendent du service configuré. L’espace de travail facilite votre investigation ; les exemples de graphes et les résultats des tests étayent l’acceptation du code.

Questions sur une modification du traitement de graphes

Faut-il toujours rejeter une entrée déconnectée ?

Uniquement si l’application exige une structure connectée unique. Pour un résultat de type forêt, des composantes déconnectées peuvent être valides. Précisez cette distinction avant de demander une correction afin que l’assistant ne force pas des connexions absentes de l’entrée.

Et si plusieurs sélections d’arêtes ont le même total ?

Décidez si tout optimum valide convient ou si le code utilisateur nécessite une sélection reproductible. Si l’ordre ou le départage compte, intégrez-le au résultat attendu et testez-le explicitement plutôt que de dépendre de l’ordre fortuit des entrées.

Comment vérifier le total annoncé ?

Utilisez un petit exemple et comparez indépendamment les arêtes sélectionnées à la somme de leurs poids. Examinez aussi si le code appelant attend uniquement le total ou la structure sélectionnée, car ces sorties permettent des comportements applicatifs différents.

Pourquoi tester séparément les nœuds isolés ?

Ils peuvent disparaître d’un résultat composé uniquement d’arêtes même si l’entrée les contient. Vérifiez la représentation environnante et décidez comment l’application doit conserver ou afficher ces nœuds, plutôt que de supposer que les arêtes sélectionnées décrivent tous les sommets.

Télécharger pour Windows ↗

Forellin · Mis à jour 2026-10-25