CComponentWisp
제품

프로그램 기능 · 유향 강연결 요소

01

strong_components.py에서 방향이 있는 상호 도달 가능성과 일반적인 무방향 연결성을 구분합니다.

01

모델

기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.

02

프로젝트

폴더를 선택하고 편집하기 전에 관련 파일을 읽도록 요청하세요. 작업의 목표와 변경 범위를 명확히 정합니다.

03

변경 사항

변경 사항과 명령 출력을 검토하세요. 결과를 채택하기 전에 프로젝트 검사를 실행해야 합니다. 생성된 코드는 자동으로 테스트된 코드가 아닙니다.

유향 강연결 요소

● ● ●ComponentWisp●
작업 흐름 · 유향 강연결 요소 ×
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
✳유향 강연결 요소
✓ 변경 사항적용하기 전에 검토하세요 ↗
작업 공간 예시 화면
AI 코딩 작업 공간

다음 아이디어가 여기서 시작됩니다.

Windows용 다운로드 ↗