UUnionPebble
Espacio de programación con IA

Agrupación de componentes disjuntos

Agrupa nodos numerados por conexiones no dirigidas mediante conjuntos disjuntos.

● ● ●UnionPebble●
Flujos de trabajo · Agrupación de componentes disjuntos ×
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())
✳Agrupa nodos numerados por conexiones no dirigidas mediante conjuntos disjuntos.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

02

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

03

Proyecto

Prueba nodos aislados, aristas repetidas y un grafo vacío, rechazando extremos inválidos antes de unir componentes.

Flujos de trabajo

Agrupación de componentes disjuntos

Flujos de trabajo ↗
Flujos de trabajo
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())
Espacio de programación con IA

Convierte los requisitos de agrupación en un cambio de software revisable

UnionPebble es un entorno de programación con IA para Windows que reúne un requisito de agrupación, su código fuente y sus consumidores en una conversación de desarrollo. Empieza por describir qué considera conectado la aplicación y qué espera recibir. Pide al modelo que inspeccione la representación existente antes de sugerir cambios en el código que crea los grupos.

Como tarea concreta, usa components.py para analizar una conexión que une dos grupos previamente separados. Incluye un nodo aislado en el caso de prueba e indica el orden de salida esperado. El ejemplo ayuda a formular una solicitud de cambio sin suponer que una colección matemáticamente equivalente satisfará al serializador o al código de visualización de la aplicación.

Revisa la propuesta en esas interfaces. Comprueba los identificadores de nodo admitidos, las aristas no válidas y el caso vacío, y ejecuta después las comprobaciones pertinentes del proyecto. Un resultado útil debe explicar tanto por qué los miembros pertenecen al mismo grupo como por qué la estructura devuelta encaja con su consumidor. Mantén los cambios ajenos de almacenamiento o interfaz fuera de una solicitud destinada a corregir el comportamiento de agrupación.

Conecta un modelo mediante un servicio compatible con OpenAI o Anthropic admitido y proporciona credenciales cuando se requieran. Si ese servicio ofrece un modelo de IA sin censura, es una opción para la sesión; las restricciones siguen dependiendo del proveedor. Las herramientas disponibles y el contexto también dependen del modelo y del servidor, por lo que debes limitar la inspección al código y la evidencia que la sesión pueda utilizar realmente.

Agrupaciones más allá de un ejemplo sin errores

¿Deben aparecer los nodos aislados en la salida?

Establece esa expectativa explícitamente. Una lista de aristas puede no mencionar nunca un nodo aislado, aunque la aplicación sepa que existe. Incluye el número declarado de nodos y un caso aislado para que el código propuesto no pueda descartar silenciosamente esas entradas del resultado.

¿Pueden órdenes equivalentes de grupos romper el código que los consume?

Sí, si un consumidor depende de un orden estable de serialización, comparación o presentación. Indica si el orden forma parte de la interfaz e inspecciona la convención de salida. La equivalencia matemática no demuestra por sí sola compatibilidad con instantáneas o procesamiento posterior del proyecto.

¿Qué debe ocurrir con un extremo de arista fuera de rango?

Define el comportamiento ante entradas rechazadas e inspecciona dónde se comunica. El ejemplo valida los identificadores según el número declarado de nodos. Revisa la respuesta del código que lo llama en vez de suponer que una excepción basta para comunicar un error útil a quien proporcionó los datos de agrupación.

¿Cómo compruebo una conexión que fusiona grupos?

Escribe de manera independiente los grupos iniciales y la composición esperada del grupo fusionado, e incluye un grupo no afectado. Ejecuta el caso con el código modificado e inspecciona el orden por separado. Esto proporciona a la revisión un resultado concreto de antes y después sin repetir la implementación dentro de la prueba.

Descargar para Windows ↗

UnionPebble · Actualizado 2026-10-25