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
✳Minimale Spannwälder
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
Vor dem Anwenden prüfen
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
Modelle
Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
Projekt
Teste getrennte Knoten, parallele Kanten, Schleifen und deterministische Gleichstände, lehne ungültige Endpunkte und Boolesche Werte ohne Eingabeänderung ab.
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
KI-Arbeitsumgebung für Code
Machen Sie unverbundene Eingaben zum Teil des Graphenvertrags
Forellin bietet Entwicklern einen KI-Programmierarbeitsbereich für Windows, um Graphenverarbeitung zusammen mit der darauf angewiesenen Anwendung zu untersuchen. Beginnen Sie das Projektgespräch mit der Eingabedarstellung und dem vom Aufrufer benötigten Ergebnis. Lassen Sie den Assistenten vor Änderungen prüfen, wie die Implementierung fehlende Verbindungen, wiederholte Kanten und die Ausgabereihenfolge behandelt. Diese Entscheidungen prägen die Funktion ebenso wie die zentrale Berechnung.
Der Kontext spanning_forest.py legt eine Aufgabe nahe, bei der unverbundene Knoten erwartet werden, statt als gescheiterter Versuch zu gelten, alles zu verbinden. Sie könnten das Modell erklären lassen, welche Kanten ausgewählt werden und wie sich die Gesamtsumme darauf bezieht. Prüfen Sie die Antwort an einem kleinen, von Hand prüfbaren Graphen und fordern Sie dann bei Bedarf einen gezielten Patch für Ergebnisvertrag oder Validierung an.
Führen Sie Projektprüfungen mit verbundenen und unverbundenen Eingaben aus und untersuchen Sie, wie die umgebende Anwendung isolierte Knoten darstellt. Gibt es mehrere gültige Ergebnisse, vereinbaren Sie, ob eine deterministische Auswahl für den Empfänger wichtig ist. Forellin akzeptiert unterstützte OpenAI-kompatible oder Anthropic-Endpunkte, bei Bedarf mit Zugangsdaten. Ein ungefiltertes KI-Modell kann gewählt werden, sofern angeboten; Modellbeschränkungen, Werkzeuge und Kontextkapazität bleiben vom konfigurierten Dienst abhängig. Der Arbeitsbereich unterstützt Ihre Untersuchung; Graphenbeispiele und Testergebnisse stützen die Abnahme des Codes.
Fragen zu einer Änderung der Graphenverarbeitung
Sollten unverbundene Eingaben immer zurückgewiesen werden?
Nur wenn die Anwendung eine einzige zusammenhängende Struktur verlangt. Bei einem Wald als Ergebnis können unverbundene Komponenten gültig sein. Geben Sie diesen Unterschied vor einer Korrekturanfrage an, damit der Assistent keine Verbindungen erzwingt, die die Eingabe nie bereitgestellt hat.
Was, wenn mehrere Kantenauswahlen dieselbe Gesamtsumme haben?
Entscheiden Sie, ob jedes gültige Optimum akzeptabel ist oder der Empfänger eine wiederholbare Auswahl braucht. Sind Reihenfolge oder Gleichstandsverhalten wichtig, machen Sie sie zum erwarteten Ergebnis und testen Sie ausdrücklich, statt sich auf die zufällige Eingabereihenfolge zu verlassen.
Wie prüfe ich die gemeldete Gesamtsumme?
Verwenden Sie ein kleines Beispiel und vergleichen Sie die ausgewählten Kanten unabhängig mit der Summe ihrer Gewichte. Prüfen Sie auch, ob der Aufrufer nur die Summe oder die ausgewählte Struktur erwartet, da diese Ausgaben unterschiedliches Anwendungsverhalten ermöglichen.
Warum isolierte Knoten separat testen?
Sie können aus einem reinen Kantenergebnis verschwinden, obwohl die Eingabe sie enthält. Prüfen Sie die umgebende Darstellung und entscheiden Sie, wie die Anwendung diese Knoten erhalten oder anzeigen soll, statt anzunehmen, ausgewählte Kanten beschrieben jeden Knoten.