수학에서, 차수 n 의 순열 σ 는 정수 1 ... n 에서 그 자체 까지의 형용 함수입니다 . 이 목록 :
2 1 4 3
나타내는 순열 σ 되도록 σ (1) (2) = σ (2) = 1, σ (3) = 4, 및 σ (4) = 3.
순열의 제곱근 σ는 자체에 적용 할 때, 부여하는 순열 σ . 예를 들어, 2 1 4 3
제곱근은 τ = 3 4 2 1
입니다.
k 1 2 3 4
τ(k) 3 4 2 1
τ(τ(k)) 2 1 4 3
모든 1≤k≤n에 대해 τ ( τ (k)) = σ (k) 이기 때문이다 .
입력
순열을 나타내는 1과 n 사이 의 n > 0 정수 목록 . 순열에는 항상 제곱근이 있습니다.
입력과 출력이 일치 하는 한 0 ... n-1 목록을 대신 사용할 수 있습니다 .
산출
순열의 제곱근이며 배열입니다.
제한 사항
알고리즘은 다항식 시간으로 n 에서 실행해야합니다 . 즉, 모든 n을 반복 할 수는 없습니다 ! 차수 n의 순열 .
모든 내장이 허용됩니다.
테스트 사례 :
많은 입력에 여러 개의 가능한 출력이 있습니다.
2 1 4 3
3 4 2 1
1
1
3 1 2
2 3 1
8 3 9 1 5 4 10 13 2 12 6 11 7
12 9 2 10 5 7 4 11 3 1 13 8 6
13 7 12 8 10 2 3 11 1 4 5 6 9
9 8 5 2 12 4 11 7 13 6 3 10 1
순열이 제곱근을 갖기 위해 길이 m의 n 사이클을 포함하면 n이 짝수 또는 m이 홀수라고 말하는 것이 맞습니까?
—
Neil
@ 닐 예. 그렇지 않으면 순열이 홀수의 스왑으로 표시 될 수 있습니다.
—
jimmy23013
아, 그래야 훨씬 더 나은 방법입니다.
—
Neil