순열
Permutation수학에서, 집합의 순열( ofutation, )은 집합의 구성원들을 수열이나 선형 순서로 배열하는 것을 의미하며, 집합이 이미 정렬되어 있는 경우에는 원소들을 재배열하는 것을 의미합니다."순열"이라는 단어는 또한 순서가 매겨진 [1]집합의 선형 순서를 변경하는 행위 또는 과정을 말합니다.
순열은 순서에 관계없이 집합의 일부 멤버를 선택하는 조합과 다릅니다.예를 들어, 튜플로 표기하면 {1, 2, 3} 집합의 순열은 6개, 즉 (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1), (3, 1, 2), (3, 2), (3, 2, 1)입니다.이것들은 모두 이 3요소 세트의 가능한 주문들입니다.글자들이 다른 단어들의 어그램 또한 순열입니다: 글자들은 원래의 단어에서 이미 순서가 정해졌고, 어그램은 글자들의 순서를 바꾸는 것입니다.유한 집합의 순열에 대한 연구는 조합론과 군론 분야에서 중요한 주제입니다.
순열은 수학의 거의 모든 분야와 과학의 많은 다른 분야에서 사용됩니다.컴퓨터 과학에서, 그것들은 분류 알고리즘을 분석하기 위해, 양자 물리학에서, 입자의 상태를 설명하기 위해, 그리고 생물학에서, RNA 서열을 설명하기 위해 사용됩니다.
n개의 구별되는 개체의 순열 수는 n개의 요인이며, 일반적으로 n!으로 쓰이며, 이는 n보다 작거나 같은 모든 양의 정수의 곱을 의미합니다.
기술적으로, 집합 S의 순열은 S에서 [2][3]자신으로의 비투영으로 정의됩니다.즉, 모든 요소가 이미지 값으로 정확히 한 번 발생하는 S에서 S까지의 함수입니다.이는 각 요소가 해당 f(s)로 대체되는 S의 요소 재배열과 관련이 있습니다.예를 들어, 위에서 언급된 순열(3, 1, 2)은 다음과 같이 정의된 α{\에 의해 설명됩니다.
- = {\) = \alpha 2) = \) =
집합의 모든 순열의 집합은 집합의 대칭 그룹이라고 하는 그룹을 형성합니다.그룹 작업은 구성(2개의 주어진 재배열을 연속적으로 수행)이며, 이로 인해 다른 재배열이 발생합니다.순열의 속성은 집합 요소의 특성에 따라 달라지지 않기 때문에, 순열을 연구하는 데 고려되는 것은 { …, {\ 2n 집합의 순열입니다.
기본 조합론에서 k-순열 또는 부분 순열은 집합에서 선택된 k개의 개별 요소의 순서 배열입니다.k가 집합의 크기와 같으면 이들은 집합의 순열입니다.
역사
6각형이라고 불리는 순열은 중국에서 이칭에서 사용되었습니다.이징)은 일찍이 기원전 1,000년.
그리스에서 플루타르코스는 칼케돈의 제노크라테스 (기원전 396–314)가 그리스어로 가능한 다양한 음절의 수를 발견했다고 썼습니다.이것은 순열과 [4]조합에서 어려운 문제를 해결하기 위한 기록상의 첫 번째 시도였을 것입니다.
아랍 수학자이자 암호학자인 알 칼릴 (717–786)은 암호학적 메시지를 썼습니다.그것은 [5]모음이 있는 모든 가능한 아랍어 단어와 없는 단어를 나열하기 위해 순열과 조합을 최초로 사용하는 것을 포함합니다.
n개의 물체의 순열의 수를 결정하는 규칙은 서기 1150년경 인도 문화에 알려져 있었습니다.인도의 수학자 바스카라 2세가 쓴 릴라바티에는 다음과 같은 구절이 있습니다.
산술급수의 곱셈은 단위에 의해 시작되고 증가하며 장소의 수까지 이어지는 곱셈의 곱이 될 것이며,[6] 구체적인 수치를 갖는 수의 변형이 될 것입니다.
1677년, 파비안 스테드먼은 변화음에서 종의 순열의 수를 설명할 때 요인을 설명했습니다.두 개의 종에서 시작하여, "첫째, 두 개는 두 가지 방법으로 다양함을 인정해야 합니다"라고 그는 12와 [7]21을 보여줌으로써 설명합니다.그리고 나서 그는 세 개의 종으로 "세 개 중 세 개의 두 개의 피규어가 제작되어야 한다"고 설명하는데, 이것은 다시 한번 설명되어 있습니다.그의 설명은 "3을 버리면 1.2가 남을 것이고, 2를 버리면 1.3이 남을 것이고, 1을 버리면 2.3이 [8]남을 것이다"와 관련되어 있습니다.그리고 나서 그는 네 개의 종으로 넘어가 세 개의 서로 다른 네 세트가 있을 것이라는 것을 보여주는 던지기 논쟁을 반복합니다.이것은 사실상 재귀적인 과정입니다.그는 "캐스팅 어웨이(casting away)" 방법을 사용하여 다섯 개의 종을 계속하고 120개의 조합을 집계합니다.[9]이 시점에서 그는 포기하고 다음과 같이 말합니다.
이러한 방법의 본질은 한 수의 변화가 모든 작은 수의 변화를 이해하는 것과 같은 것입니다. 그래서 한 수의 변화의 완전한 송곳니는 모든 작은 수의 완전한 송곳니가 하나의 [10]전신으로 합쳐져서 형성되는 것처럼 보입니다.
Stedman은 순열에 대한 고려를 넓혔습니다. 그는 알파벳의 문자와 말의 순열의 [11]수를 20개의 마구간에서 고려했습니다.
관련이 없어 보이는 수학 문제들이 순열의 도움을 받아 연구된 첫 번째 사례는 다항식의 연구에서 조셉 루이스 라그랑주가 방정식의 근의 순열의 성질이 그것을 푸는 가능성과 관련이 있다는 것을 관찰한 1770년경에 발생했습니다.이 작업 라인은 궁극적으로 갈루아 이론에서 에바리스트 갈루아의 연구를 통해 얻어졌습니다. 갈루아 이론은 라디칼에 의한 다항식 해결과 관련하여 가능한 것과 불가능한 것에 대한 완전한 설명을 제공합니다.현대 수학에서, 어떤 문제를 이해하는 것은 그것과 관련된 어떤 순열을 연구하는 것을 필요로 하는 비슷한 상황들이 많이 있습니다.
순열은 제2차 세계 대전 당시 나치 독일이 사용한 암호 장치인 에니그마 기계의 암호 분석에 중요한 역할을 했습니다.특히, 치환의 한 가지 중요한 속성, 즉, 두 개의 치환이 동일한 주기 유형을 가질 때 정확히 공액이라는 것은 암호학자 마리안 레예프스키가 1932년에서 [12][13]1933년 사이에 독일의 에니그마 암호를 깨기 위해 사용한 것입니다.
반복되지 않는 순열
순열의 가장 간단한 예는 n개의 항목을 n개의 자리로 배열하는 가능한 방법의 수를 고려하는 반복이 없는 순열입니다.요인은 반복을 포함하지 않는 집합의 순열 수를 정의할 때 특수한 용도로 사용됩니다.n!은 "n개의 계승"이라고 읽으며 정확히 우리가 사물을 새로운 순서로 재배열할 수 있는 방법의 수이다.예를 들어, 만약 우리가 오렌지, 사과, 배 세 가지 과일을 가지고 있다면, 우리는 그것들을 언급된 순서대로 먹을 수도 있고, 아니면 우리는 그것들을 바꿀 수도 있습니다(예를 들어, 사과, 배, 오렌지). 정확한 순열 수는 3 = ⋅ ⋅ =6 {\ 3!=2\ 3=입니다.항목 수(n)가 증가할수록 그 수는 매우 커집니다.
비슷한 방식으로, n개의 객체에서 k개의 항목 배열의 수를 부분 순열 또는 k-순열이라고도 합니다. n permute k"로 읽음)로 쓸 수 있으며, 1⋯ + {\ n - k +)}(또한 n/ ( {\ n - k)!}로 적음)와 같습니다.
정의.
수학 교과서에서는 그리스어 소문자를 사용하여 순열을 표시하는 것이 일반적입니다.일반적으로 α{\ β,{\ 또는, {\ 및 중 하나를 합니다.[16]
순열은 집합 S에서 자체로의 바이젝션으로 정의될 수 있습니다.n개의 원소를 갖는 집합의 모든 순열은 S_로 되는 대칭 그룹을 형성하며, 여기서 그룹 연산은 함수 구성입니다.따라서 S_ 의 π 및 σ 두 순열에 대해 네 개의 그룹 공리는 다음과 같이 성립합니다.
- 닫힘:만약π \pi와σ \가 {\n}}에 있다면, σπ . { σ is π display if style \ \ \ s pi . igma } so \displaystyle \pi \sigma.}가 됩니다.
- 연관성:임의의 세 순열π,σ, τ ∈ n sigmatau \ S_ (πσ )=π (τ) .{\\sigma )\tau =\sigma \tau
- 아이덴티티:ID 이( 있고 x ∈ {\ x S에 대해 ID (x ) = )=}로 정의됩니다. 모든 σ n에 대해 ID σ= σ id =σ . {\ \ {id} \displaystyle {id} \displaystyle {id=\displaystyle
- 가역성:모든 순열 π S S_에 대해 역순열π - 1 ∈ n{\^{- S_에 대해 π- =.{\ \}=\^{- =\
일반적으로, 두 개의 순열의 구성은 치환, 즉 π σ ≠ σ π . π { σ . {\\sigma \ \
순열은 집합에서 자신으로의 빗변으로서, 집합의 재배열을 수행하는 함수이며, 배열 자체가 아닙니다.더 오래되고 더 기본적인 관점은 순열이 배열 그 자체라는 것입니다.이 둘을 구별하기 위해 능동형과 수동형 식별자가 용어 순열 앞에 붙는 경우가 있는 반면, 이전 용어에서는 대체 및 순열이 [17]사용됩니다.
순열은 하나 이상의 서로소인 순환, 즉 궤도로 분해될 수 있으며, 일부 요소에 대한 순열의 적용을 반복적으로 추적함으로써 발견됩니다.예를 들어,σ ( = {\pi로 정의된 순열σ displaystyle \pi }는 1주기 ({\\pi 은(는 = {\2)= 및π ( = {\)= 은(자세한 내용은) 2주기 3{\3)}입니다.s 구문에 대해서는 아래의 § 주기 표기)를 참조하십시오.일반적으로, 길이 k의 사이클, 즉 k개의 원소로 이루어진 사이클을 k-사이클이라고 합니다.
1주기 의 요소를 순열의 고정 점이라고 합니다.고정된 점이 없는 순열을 탈선이라고 합니다. 2-사이클을 전이라고 합니다. 이러한 순열은 두 요소만 교환하고 나머지는 고정된 상태로 둡니다.
노테이션
순열을 요소별로, 즉 조각별 함수로 쓰는 것이 번거롭기 때문에, 그것들을 더 간결하게 표현하기 위해 몇 가지 표기법이 발명되었습니다.순환 표기법은 그것의 콤팩트함과 그것이 치환의 구조를 투명하게 만든다는 사실 때문에 많은 수학자들에게 인기 있는 선택입니다.특별한 규정이 없는 한 이 문서에서 사용되는 표기법이지만 다른 표기법은 특히 응용 분야에서 여전히 널리 사용됩니다.
2행 표기법
코시의 두 줄 [18]표기법에서 하나는 첫 번째 행에 S의 요소를 나열하고, 각각의 경우 두 번째 행에 S의 요소 아래의 이미지를 나열합니다.예를 들어, 집합 S = {1, 2, 3, 4, 5}의 특정 순열은 다음과 같이 쓸 수 있습니다.
이것은 σ가 σ(1) = 2, σ(2) = 5, σ(3) = 4, σ(4) = 3, σ(5) = 1을 만족함을 의미합니다. S의 원소는 첫 번째 행에서 임의의 순서로 나타날 수 있습니다.이 순열은 다음과 같이 쓸 수도 있습니다.
아니면
외줄표기
[a]S의 요소에 대해 x 1 와 "자연적인" 순서가 있다면, 두 줄 표기의 첫 번째 행에 이를 사용합니다.
이 가정 하에서 첫 번째 행을 생략하고 순열을 한 줄 표기로 다음과 같이 쓸 수 있습니다.
- ( ) ( ) ( ) ( n){\(x_{igma (x_ \;\cdots (
즉, S.[19][20] Care의 요소를 순서대로 배열하여 아래에 설명된 순환 표기법과 한 줄 표기법을 구별해야 합니다.수학 문헌에서 일반적인 용법은 한 줄 표기에는 괄호를 생략하고 순환 표기에는 괄호를 사용하는 것입니다.한 줄 표기법은 [21]순열의 단어 표현이라고도 합니다.위의 예는 첫 번째 행에 자연적인 순서 1 2 3 4 5를 가정하기 때문에 2 5 4 3 1이 될 것입니다. (일부 숫자가 두 자리 이상인 경우에만 쉼표를 사용하여 이러한 항목을 구분하는 것이 일반적입니다.)이 형태는 더 콤팩트하고, 초등 조합학과 컴퓨터 과학에서 흔히 볼 수 있습니다.S의 원소나 순열을 더 크거나 더 작은 것으로 비교하는 응용 프로그램에서 특히 유용합니다.
주기표기
순환 표기법은 집합의 요소에 순열을 반복적으로 적용하는 효과를 나타냅니다.이는 치환을 순환의 산물로 표현하는데, 별개의 순환은 서로소이기 때문에 이를 "이소 순환으로의 분해"라고 합니다.
순열 σ 을(를) 사이클 표기법으로 적으려면 다음과 같이 진행합니다.
- 여는 괄호를 작성한 다음 S{\ S의 임의 요소 x를 선택하고 과 같이 적습니다 (x {\(\,
- 그런 다음 x의 궤도를 추적합니다. 즉, σ 의 연속적인 적용 하에 값을 적습니다 :( xσ (x))σ (σ ( ...{\
- 값이 x로 돌아올 때까지 반복하고 x가 아닌 닫는 괄호를 적습니다 ( σ ( )σ (x) ){\ )}
- 이제 아직 기록되지 않은 S의 요소를 계속 진행하고 같은 으로 진행합니다(xσ ( )σ ( ) ) ( y … ) \,\ (sigma (x (\, )}
- S의 모든 요소가 사이클 단위로 쓰여질 때까지 반복합니다.
따라서 (한 줄 표기로) 순열 2 5 4 3 1은 순환 표기로 (125)(34)로 표기할 수 있었습니다.
일반적으로 순열은 통근하지 않는 반면, 분리 주기는 그렇지 않습니다. 예를 들어,
상황이 명확할 경우 1-키워드는 사이클 표기법에서 생략되는 경우가 많습니다. 어떤 사이클에도 나타나지 않는 S의 임의의 요소 x에 대하여,(x)= x {\) =를 암시적으로 가정합니다. 1-키워드로만 구성된 아이덴티티 순열은 단일 1-사이클 (x), 숫자 1 또는 id로 나타낼 수 있습니다.
주기 표기의 편리한 특징은 역순열의 주기 표기가 순열의 주기에서 요소의 순서를 반대로 함으로써 제공된다는 것입니다.예를들면,
정준 주기 표기법
일부 조합적 맥락에서 사이클의 요소와 (이음) 사이클 자체의 특정 순서를 고정하는 것이 유용합니다.미클로스 보나는 다음과 같은 순서 선택을 표준 주기 표기라고 부릅니다.
- 각 사이클에서 가장 큰 요소가 먼저 나열됩니다.
- 사이클들은 그들의 첫번째 요소의 증가하는 순서로 정렬됩니다.
예를 들어, (312)(54)(8)(976)은 표준 주기 [25]표기법의 순열입니다.표준 주기 표기법은 한 주기를 생략하지 않습니다.
리처드 P. Stanley는 표현의 동일한 선택을 [26]순열의 "표준 표현"이라고 부르고, Martin Aigner는 동일한 [21]개념에 대해 "표준 형태"라는 용어를 사용합니다.세르게이 키타예프는 또한 "표준 형태"라는 용어를 사용하지만, 두 가지 선택을 모두 반대로 합니다. 즉, 각 사이클은 최소 요소를 먼저 나열하고 사이클은 최소 요소 순으로 정렬됩니다. 즉, 첫 번째 [27]요소입니다.
순열의 구성
두 개의 순열의 구성을 나타내는 두 가지 방법이 있습니다. {\displaystyle \\}은 집합의 임의의 원소x를 ( ) \ \pi (에 함수입니다.가장 오른쪽에 있는 순열은 함수 응용 프로그램의 작성 방식 때문에 인수에 [28]먼저 적용됩니다.
함수 구성은 연관성이 있으므로 순열에 대한 구성 작업도 마찬가지입니다 ( σπ τ )σ= π (τtau) {\(\tau \pi )\sigma =\sigma \ ) 따라서 그룹화를 표현하기 위해 괄호를 추가하지 않고 두 개 이상의 순열로 이루어진 제품을 작성합니다. 또한 일반적으로 구성을 나타내기 위해 점이나 기타 기호 없이 작성됩니다.
일부 저자들은 가장 왼쪽 요인이 먼저 작용하는 것을 선호하지만, 이를 위해 순열은 종종 지수로 자신의 주장 오른쪽에 쓰여져야 합니다. 여기서 x에 작용하는 σ는 x로 쓰여집니다. 그런 다음 곱은 x = (x)로 정의됩니다.그러나 이 문서에서는 가장 오른쪽에 있는 순열이 먼저 적용되는 정의를 사용합니다.
순열이라는 용어의 다른 용도
순서 배열로서의 순열의 개념은 순열이 아닌 여러 일반화를 인정하지만, 문헌에서는 순열이라고 불렸습니다.
n의 k-치환
순열이라는 용어의 약한 의미는 때때로 기본 조합 텍스트에서 사용되며, 주어진 집합의 모든 요소를 사용해야 하는 요구 사항 없이 요소가 두 번 이상 발생하지 않는 정렬된 배열을 나타냅니다.이는 특별한 경우를 제외하고는 순열이 아니라 순서 배열 개념을 자연스럽게 일반화한 것입니다.실제로, 이 사용은 종종 크기 n의 주어진 집합에서 가져온 요소의 고정 길이 k의 배열을 고려하는 것을 수반합니다. 즉, n의 이러한 k-순열은 n 집합의 k-요소 부분 집합의 다른 순서 배열입니다(구 문헌에서는[c] 변형 또는 배열이라고도 함).이러한 개체는 부분 순열 또는 반복이 없는 시퀀스라고도 하며, 일반적으로 "순열"의 다른 의미와 혼동을 방지하는 용어입니다.이러한 {\ k의 수- n {\ n}의 순열은 {\ P_ k){\ P A{\ A s)와 기호로 다양하게 표시됩니다.tands는 "평가"[32]를 의미하며, 그 가치는 제품에[33] 의해 부여됩니다.
- ( ) ( - ) (n - ) ( - + ) ⏟ P)=\_ {
k > n일 때 0이고, 그렇지 않으면 다음과 같습니다.
이 곱은 n {\ n이가) 음이 정수라는 가정 없이 잘 정의되며, 조합론 밖에서도 중요합니다. 즉, 의기호 ( {\k번째 하강 계승 n _ n로 알려져 있습니다.
이 용어 순열의 사용은 용어 조합과 밀접한 관련이 있습니다.n-집합 S의 k-요소 조합은 S의 k 요소 부분 집합이며, 요소의 순서가 정해져 있지 않습니다.S의 모든 k 요소 부분 집합을 취하고 가능한 모든 방법으로 각각의 k 요소를 순서화함으로써 S의 모든 k-순열을 얻습니다.따라서 n-집합의 k-조합의 수 C(n,k)는 다음과 같이 n의 k-순열의 수와 관련이 있습니다.
이러한 숫자는 이항 계수라고도 하며 ({\{\로 표시됩니다
반복이 있는 순열
반복이 허용되는 집합 S의 k개 요소의 순서 배열을 k-튜플이라고 합니다.일반적인 순열은 아니지만, 반복이 있는 순열이라고도 합니다.어떤 맥락에서는 알파벳 S 위의 단어라고 불리기도 합니다.집합 S에 n개의 요소가 있는 경우 S에 대한 k-튜플 는입니다 {\ nk-튜플에서 요소가 나타나는 빈도에는 제한이 없지만 요소가 나타나는 빈도에 제한이 있다면 이 공식은 더 이상 유효하지 않습니다.
다중집합의 순열
M이 유한 다중 집합이면 다중 집합 순열은 M의 원소를 순서대로 배열한 것으로, 각 원소가 M에서 자신의 다중도와 정확히 같은 횟수로 나타납니다.반복되는 글자가 있는 단어의 애너그램은 다중집합 [d]순열의 한 예입니다.M의 원소들(순서대로 취함)의 이 m1 {\1 2 {\2 ..., {\l}이고 그 합(즉, M의 크기)이 n이라면, M의 다중집합 순열의 수는 다항 계수에 [34]의해 주어집니다.
예를 들어, 미시시피(MISSIPI)라는 단어의 구별되는 애너그램의 [35]수는 다음과 같습니다.
- .
다중집합 M의 k-순열(k-permutation)은 M의 원소들의 길이 k의 수열로, 각 원소가 M(원소의 반복수)에서 자신의 다중도보다 몇 배 작거나 같은 수열로 나타나는 것입니다.
원순열
배열로 간주되는 경우, 순열을 선형 배열이라고도 합니다.이러한 배열에는 첫 번째 요소, 두 번째 요소 등이 있습니다.그러나 이러한 구별된 순서가 더 이상 존재하지 않는 경우, 즉 배열에 "첫 번째 요소"가 없는 경우, 모든 요소가 배열의 시작으로 간주될 수 있습니다.물체를 원형으로 배열하는 것을 원형 [36][e]순열이라고 합니다.이들은 선형 배열의 최종 요소를 앞으로 이동시킴으로써 생성된 등가 관계에 대해 객체의 일반적인 순열의 등가 클래스로 공식적으로 정의될 수 있습니다.
하나를 다른 하나로 회전시킬 수 있는 경우(즉, 요소의 상대 위치를 변경하지 않고 순환할 수 있는 경우) 두 개의 원형 순열은 동일합니다.네 글자에 대한 다음 네 개의 원형 순열은 동일하다고 간주됩니다.
1 4 2 3 4 3 2 1 3 4 1 2 2 3 1 4
원형 배열은 반시계 방향으로 읽게 되어 있으므로, 어떤 회전도 다른 회전을 가져올 수 없으므로 다음 두 개는 동등하지 않습니다.
1 1 4 3 3 4 2 2
원소가 n개인 집합 S의 원순열 수는 (n – 1)!
특성.
n개의 서로 다른 개체의 순열 수는 n!입니다.
k개의 분리 주기를 갖는 n-순열의 수는 c(n, k)[37]로 표시되는 첫 번째 종류의 무의미한 스털링 수이다.
사이클타입
n개의 요소를 가진 집합의 순열 σ 의 순환(고정된 점 포함)은 집합을 분할합니다. 따라서 이러한 순환의 길이는 n의 정수 분할을 형성하는데, 이를 σ 의 순환 유형(또는 순환 구조 또는 순환 형태)이라고 합니다. 모든 고정된 po에 대해 순환 유형에 "1"이 있습니다.σ 의int, 모든 전치에 대해 "2" 등입니다.β =( 5)( )( )( 7) \= ( (\,1의 사이클 타입은 ( 입니다.
이 문서는 [123121]과 같이 보다 압축된 형태로 작성될 수도 있습니다.더 정확하게 말하면, 일반적인 는 _ _{ n_{ 서 _{_{는 각 길이의 사이클 수이 됩니다.주어진 사이클 유형의[38] 순열 수는
- .
요소가 n개인 집합의 주기 유형 수는 파티션 p p의 값과 같습니다.
켤레 순열
일반적으로 주기 표기법으로 작성된 순열 구성은 쉽게 설명할 수 있는 패턴을 따르지 않습니다. 즉, 구성의 주기는 구성된 것과 다를 수 있습니다.단, σ \을 다른 순열π \pi 로 공액하는 특수한 경우에는 사이클 타입이 유지되며, 이는 ππ - {\\pi 여기서, - 1 \ \은 {\ \pi의 컨쥬게이로, σ {\ \pi의 표기를 사용하고, π {\ \pi을(를) 모든 항목에 하여 사이클 표기를 구할 수 있습니다.두 개의 순열이 동일한 사이클 유형을 가질 때 정확히 공역임을 알 수 있습니다.
순열순서
순열 σ \display의 순서는 sigma m = {\\display}=\이(가) 가장 작은 양의 정수 m입니다. 사이클 길이의 최소 공배수입니다.예를 들어, ( 2) ( ){\ (\,6)의순서는 2⋅ = {\ 2 3=입니다.
순열의 패리티
유한 집합의 모든 순열은 [40]변환의 곱으로 표현될 수 있습니다.주어진 순열에 대한 이러한 식이 많이 존재할 수 있지만, 모두 짝수 개의 전이를 포함하거나 모두 홀수 개의 전이를 포함합니다.따라서 이 숫자에 따라 모든 순열을 짝수 또는 홀수로 분류할 수 있습니다.
결과를 확장하여 각 순열에 sigma \operatorname {sgn} \sgn로 쓰여진 기호를 할당할 수 있습니다. \sgn이(가) 짝수이면 =+ {\\ \sgn = -{\sgn \sgn = -입니다.그런 다음 두 개의 순열σ {\ 및 π
은 sgn ( σσ -1 ) = + {\ \ { \leftdisplaytyle)= +
행렬 표현
순열 행렬은 각 열과 각 행에 정확히 하나의 항목 1이 있고 다른 항목은 모두 0인 n × n 행렬입니다.순열 행렬을 {1, 2, ..., n}의 순열에 할당하는 데 사용할 수 있는 몇 가지 다른 규칙이 있습니다. 하나의 자연스러운 접근 방식은 i = σ(j)이면 (i, j) 항목이 1이고 그렇지 않으면 0인 Mσ {\ M_과(를) 연관시키는 것입니다.이 규칙에는 두 가지 매력적인 특성이 있습니다. 첫째, 행렬의 곱과 순열의 곱이 같은 순서, 즉 순열 σ π에 대해 M π M ∘ M σ Mσ {\{\pi } = \pi 입니다.둘째, {\{\가 표준 × 1{\ n 1 열 벡터(항목이 1이고 다른 모든 항목이 0인 벡터)를 나타내는 , σ i = σ ( {}={\displaystyle (입니다.
예를 들어, 이 규칙에서, 순열σ (, = ( {\\ 3)= ( 1&{pmatrix 및 순열π( 3 = ( 1) {\ (1, 2, 3= (2, 3, 3)} {\displaystyle (1, 2, 3) ( (, 3 3)}}은 0 0 ) {pmatrix입니다그렇다면 순열의 구성은 (σ ∘ πσ ) ( 1, ) = sigma( )= ( 1, 3, 2 ) displaystyle (\) (3 ) = \displaystyle (2, 3 ) = \ (2,1 ) ( ( 2) 이고, 해당 행렬의 곱은
순열 σ가 행렬 P σ = ( σ - = ( σ ) {\ P_ } = (}= ((i, j) 항목이 j π(i)이면 1이고, 아니면 0인}.이 규칙에서, 순열 행렬은 순열과 반대 순서로 곱하는데, , 모든 순열 δ, δ에 대해 P P δ P_} } = \}}.이 대응 관계에서 순열 행렬은 1× 1 n 행 벡터 T{\T : ( ( () T 을.
오른쪽의 케일리 표에는 3개 원소의 순열에 대한 행렬이 나와 있습니다.
전체 순서 집합의 순열
일부 응용 프로그램에서는 퍼뮤테이션되는 집합의 요소가 서로 비교됩니다.이것은 어떤 두 요소를 비교할 수 있도록 집합 S에 총 차수가 있어야 합니다.집합 {1, 2, ..., n}은(는) 일반적인 "≤" 관계에 의해 완전히 순서가 정해지므로 이러한 응용 프로그램에서 가장 자주 사용되는 집합이지만 일반적으로 전체 순서가 정해진 집합이면 됩니다.이러한 응용 프로그램에서 순열의 위치에 대해 이야기하려면 순열의 순서 배열 보기가 필요합니다.
S의 총 주문량과 직접적인 관련이 있는 여러 속성이 있습니다.
상승, 하강, 주행 및 초과
n의 순열 σ의 상승은 다음 값이 현재 값보다 큰 <n의 임의의 위치입니다.즉, 만약 σ = σσ...σ이면 i는 σ < σ이면 상승입니다.
예를 들어, 순열 3452167은 (위치에) 1, 2, 5, 6의 오름차순을 가집니다.
마찬가지로 하강은 θi > θ인i+1 i < n 위치이므로 1 < 1인 모든 i는 상승이거나 θ의 하강입니다.
순열의 오름차순은 어느 쪽 끝에서도 확장할 수 없는 연속된 순열의 비어 있지 않은 증가하는 연속적인 연속적인 연속입니다. 연속적인 오름차순의 최대 순서에 해당합니다( 후자는 비어 있을 수 있음: 두 연속적인 내림차순 사이에는 길이 1의 오름차순이 여전히 있음).대조적으로 순열의 증가하는 연속은 반드시 연속적인 것은 아닙니다. 일부 위치에서 값을 생략하여 순열에서 얻은 요소의 증가 순서입니다.예를 들어, 순열 2453167은 오름차순(245, 3, 167)을 가지며, 오름차순(2367)을 갖습니다.
순열의 내림차순이 k - 1이면 오름차순의 [41]합이어야 합니다.
k개의 오름차순을 가진 n의 순열 수는 정의에 따라 오일러 수 ⟩ k ⟨ {\\left 입니다. 이는 또한 k개의 내림차순을 가진 n의 순열 수입니다.그러나 일부 저자는 오일러 수 ⟨ k ⟩ {\ k를 k개의 오름차순을 가진 순열 수로 정의하며, 이는 k - 1개의 내림차순에 해당합니다.
순열 초과 σσ...σ는 σ > j와 같은 지수 j입니다. 부등식이 엄격하지 않으면(즉, σ ≥ j), j를 약한 초과라고 합니다.k개의 초과가 있는 n-순열의 수는 [43]k개의 하위가 있는 n-순열의 수와 일치합니다.
포아타 전환 보조정리
한 줄 표기법과 표준 주기 표기법 사이에는 관계가 있습니다.표준 주기 표기법에서순열( {\(\,\,1을(를) 생각해 보십시오. 괄호를 간단히 제거하면 한 줄 표기법에서 231 {\231을(를) 얻습니다.포아타의 전이 보조자는 n-순열 집합에 대한 편향으로서 이 대응의 본질을 확립합니다.[44]리처드 P.Stanley는 이 서신을 근본적인 [26]편향이라고 부릅니다.
f( ) = f)=을(를) 표준 주기 에서 p {\ p이 주어졌을 때 한 줄 표기법으로 {\ q을(를) 반환하는 괄호로 합니다.명시된 바와 같이 f {\ f은(는) 모든 괄호를 제거하기만 하면 됩니다.한 줄 표기법으로q {\q}이 주어졌을 때 p {\ p을를) 표준 주기 표기법으로 하는 역변환 - 1() = {\ f) = p의 은 직관적이지 않습니다.한 줄 = q ⋯ n {\2}\n이(가) 주어졌을 때, 표준 주기 표기법에서 {\ p의 첫 번째 는 1{\로 시작해야 합니다. 다음 가q 1 {\1}}보다 한 p {\ p의 주기에 있습니다 p의 두 번째 주기는 j > 1 {\ > 1과 가장 작은 인덱스 j {\displaystyle j}에서 시작합니다. 즉 j{\는 의 모든 것보다 크기 때문에 왼쪽에서 오른쪽으로의 최대값이라고 합니다.표준 사이클 표기법의 모든 사이클은 왼쪽에서 오른쪽으로 [44]최대치로 시작합니다.
예를 들어, q = {\ q = 에서 5는 시작 요소 3보다 큰 첫 번째 요소이므로 p{\ p의 첫 번째 주기는( 12 {\2이어야 합니다. 그러면 8은 5보다 큰 다음 요소이므로 두 번째 주기는 4{\4입니다. 9는 9보다 크므로n 8 ( 은(는) 그 자체로 순환입니다.마지막으로, 9는 오른쪽에 있는 모든 나머지 요소보다 크므로, 마지막 은( {\6\,입니다. 이 4개의 사이클을 합하면 표준 사이클 표기법에서 p= (12 ) (4) ( ) 6) {\ p = \,22\,) (\,5 (\,가 .
다음 표에서는 123{\ 123의 6개 순열에 대해q {\q}과 p{\ p을(를) 보여 줍니다.각 등식의 굵은 면은 지정된 표기법(q{\q}의 한 줄 표기법 및 p{\ p의 표준 주기 표기법)을 사용하여 순열을 표시하는 반면 굵지 않은 면은 다른 표기법에서 동일한 순열을 표시합니다.표의 각 열의 굵은 면을 비교하면 포아타의 바이젝션의 괄호 제거/복원 작업이 표시되는 반면 각 열의 동일한 면(예: LHS)을 비교하면 바이젝션(처음 3개 행)에 의해 자신에게 매핑되고 그렇지 않은 순열(마지막 3개 행)이 표시됩니다.
첫 번째 결과로서, 정확히 k개의 좌우 최대치를 갖는 n-순열의 수는 또한 첫 번째 의 무의미한 스털링 수인 c() c와 같습니다. 또한, 포아타의 매핑은 k-약한 초과를 갖는 n-순열을 k - 1 [44]상승을 갖는 n-순열로 가져갑니다.예를 들어, (2)(31) = 321의 경우 두 개의 약한 초과(지수 1 및 2에서)가 있는 반면, f(321) = 231의 경우 한 개의 상승(지수 1에서 즉, 2에서 3까지)이 있습니다.
반전
순열 σ의 반전은 순열의 항목이 반대 순서인 위치의 쌍(i, j)입니다.i < i 및 σi > σ j{\ 따라서 하강은 두 개의 인접한 위치에서의 반전일 뿐입니다.예를 들어, 순열 σ = 23154에는 (1, 3), (2, 3) 및 (4, 5)의 세 가지 반전이 있습니다. (2, 1), (3, 1) 및 (5, 4).
때때로 반전은 순서가 뒤바뀐 값의 쌍(σ,σ)으로 정의됩니다. 이것은 반전 수에 차이가 없으며, 이 쌍(역)은 역순열 σ에 대해서도 위의 의미에서 반전입니다.반전 수는 순열의 항목이 순서를 벗어난 정도를 나타내는 중요한 척도이며, σ와 σ의 경우는 동일합니다.인접한 위치를 연속적으로 적용(오른쪽 곱셈)함으로써 역이 있는 순열을 순서대로(즉, 동일한 순열로 변환) 하기 위해서는 항상 가능하며 k개의 그러한 연산이 필요합니다.또한 인접한 변환에 대한 합리적인 선택은 작동할 것입니다. 각 단계에서 i와 i + 1의 변환을 선택하면 충분합니다. 여기서 i는 지금까지 수정된 순열의 하강입니다(다른 하강을 생성할 수 있지만 변환이 이 특정 하강을 제거할 수 있도록).이러한 전치를 적용하면 반전 수가 1 감소하기 때문입니다. 이 숫자가 0이 아닌 한 순열은 항등식이 아니므로 적어도 하나의 하강이 있습니다.버블 정렬과 삽입 정렬은 순서를 정렬하기 위한 이 절차의 특정한 예로 해석할 수 있습니다.부수적으로 이 절차는 임의의 순열 σ가 인접한 전이의 곱으로 기록될 수 있음을 증명합니다. 왜냐하면 이 과정은 σ를 동일성으로 변환하는 그러한 전이의 모든 순서를 단순히 뒤집을 수 있기 때문입니다.실제로 σ를 동일성으로 변환할 수 있는 인접 위치의 모든 시퀀스를 열거함으로써 (역전 후) 인접 위치의 곱으로 σ를 쓰는 최소 길이의 모든 표현식의 전체 목록을 얻습니다.
n의 순열수와 k의 역순열수는 마호니아 [47]수로 표현되며, 이것은 제품의 확장에 있어서 X의k 계수입니다.
σ∈ , ∈ { 2 …, }, i 2, \ n라고 하면, i < i< σ이 되도록 . 이 경우 반전 의 가중치를 σ(- σ 라고 합니다.Kobayashi(2011)는 열거식을 증명하였습니다.
여기서 {\는 대칭 그룹의 브루하트 순서를 나타냅니다.이 등급화된 부분 순서는 콕서터 그룹의 맥락에서 종종 나타납니다.
컴퓨팅에서의 순열
번호 순열
n개의 사물의 순열을 표현하는 한 가지 방법은 순서 배열(순서)로서 순열의 숫자와 표현 사이에서 변환할 수 있는 편리한 방법이 제공된다면 0 ≤ N < n!인 정수 N에 의한 것입니다.이것은 임의의 순열을 가장 압축적으로 표현하며, 컴퓨팅에서 n이 기계어로 N을 유지할 수 있을 정도로 충분히 작을 때 특히 매력적입니다. 32비트 단어의 경우 n ≤ 12를 의미하고 64비트 단어의 경우 n ≤ 20을 의미합니다.변환은 수열n dn−1, d, ..., d, d의21 중간 형태를 통해 수행될 수 있으며, 여기서i d는 i보다 작은 음이 아닌 정수입니다(하나는 항상 0이기 때문에1 생략할 수 있지만, 그 존재는 순열로의 후속 변환을 설명하기 쉽게 만듭니다).그런 다음 첫 번째 단계는 요인 수의 체계에서 단순히 N을 표현하는 것으로, 이는 단지 특정 혼합 기수 표현일 뿐입니다. 여기서 n!보다 작은 숫자의 경우 연속적인 숫자에 대한 기저(자리값 또는 곱셈 인자)는 (n - 1)!, (n - 2)!, ..., 2!, 1!입니다.두 번째 단계에서는 이 시퀀스를 레머 코드로 해석하거나 (거의 동등하게) 반전 테이블로 해석합니다.
σi i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 레머 코드 |
---|---|---|---|---|---|---|---|---|---|---|
1 | × | × | × | × | × | • | d = 5 | |||
2 | × | × | • | d = 2 | ||||||
3 | × | × | × | × | × | • | d = 5 | |||
4 | • | d = 0 | ||||||||
5 | × | • | d = 1 | |||||||
6 | × | × | × | • | d = 3 | |||||
7 | × | × | • | d = 2 | ||||||
8 | • | d = 0 | ||||||||
9 | • | d = 0 | ||||||||
반전표 | 3 | 6 | 1 | 2 | 4 | 0 | 2 | 0 | 0 |
순열 φ에 대한 레머 코드에서, 숫자n d는 첫 번째 항 φ에1 대한 선택을 나타내고, 숫자n−1 d는 집합의 나머지 n - 1 요소 중 두 번째 항 φ에2 대한 선택을 나타냅니다.좀 더 정확하게 말하면n+1−i, 각 d는 남아 있는 원소의 수를 πi 의 항보다 엄격하게 적게 제공합니다.나머지 요소는 나중에 σ로 표시될 수밖에 없기 때문에 d는 i를 포함하는 반전(i,j)을 더 작은 인덱스로 계산합니다(i < j 및 σ > σ 값의 수).σ에 대한 반전 테이블은 상당히 유사하지만, 여기서는 k = σ가 발생하는 반전 수(i,j)를 반전 순서로 나타나는 두 값 중 작은 값으로 계산합니다.두 부호화 모두 n 로테 다이어그램(Heinrich August Rothe의 이름을 따서 명명됨)에 의해 시각화될 수 있으며, (i,σ)의 점은 순열의 항목을 표시하고, (i,σ)의 십자가는 반전(i,j)을 표시합니다. 반전의 정의에 따라 열에 있는 점 (j,σ) 앞과 점 (i,,) 앞에 오는 모든 정사각형에서 십자가가 나타납니다.◦) 일렬로i레머 코드는 연속된 행에 있는 십자가의 수를 나열하는 반면, 반전 테이블은 연속된 열에 있는 십자가의 수를 나열합니다. 그것은 단지 역순열에 대한 레머 코드일 뿐이고, 그 반대도 마찬가지입니다.
Lhmer codedn, dn−1, ..., d2, d를1 순서 집합 S의 순열로 효과적으로 변환하기 위해서는 S의 원소 목록을 순서대로 나열하는 것으로 시작하여 i가 1에서 n으로 증가하면 다른 원소보다n+1−i 앞에 오는 원소로 σ가i 증가하고 그 원소를 목록에서 제거할 수 있습니다.반전 테이블n d, dn−1, ..., d, d를21 대응하는 순열로 변환하기 위해, 가장 큰 것부터 가장 작은 것까지 S의 요소를 초기의 빈 시퀀스에 삽입하면서 d에서 d로1n 숫자를 횡단할 수 있습니다; 반전 테이블의 숫자 d를 사용하는 단계에서,이미 존재하는 d개의 요소에 의해 선행되는 지점에서 시퀀스에 삽입되는 S의 요소.또는 n개의 빈 슬롯의 행으로 시작하여 반전 테이블과 S의 요소를 둘 다 반대 순서로 처리할 수 있으며, 각 단계에서 S의 요소를 다른 빈 슬롯 앞에 있는 빈 슬롯에 배치할 수 있습니다.
연속적인 자연수를 계승수 체계로 변환하면 (다른 혼합 기수 체계의 경우와 마찬가지로) 사전 순서로 수열이 생성되고, 이를 순열로 더 변환하면 레머 코드 해석이 사용되는 경우 사전 순서가 유지됩니다 (반전표를 사용하면 다른 순서를 얻을 수 있음).ring. 여기서 첫 번째 항목의 값이 아닌 항목 1의 위치를 기준으로 순열을 비교함으로써 시작합니다.)요인 계수 시스템 표현에서 숫자의 합은 순열의 반전 수를 제공하고, 그 합의 패리티는 순열의 서명을 제공합니다.또한, 반전 테이블의 영점들의 위치는 순열의 왼쪽에서 오른쪽으로의 최대치를 제공하는 반면(예 6, 8, 9), 레머 코드의 영점들의 위치는 오른쪽에서 왼쪽으로의 최소치의 위치들(예 1, 2의 값들의 4, 8, 9,5); 이것은 모든 순열들 사이에서 그러한 극한의 분포를 계산할 수 있게 합니다.Lhmer가 코드화된nn−1 순열, d, ..., d는21 d인i+1 경우에만i 오름차순 n - i를 갖습니다.
순열 생성 알고리즘
계산 시 특정 값 시퀀스의 순열을 생성해야 할 수도 있습니다.이 작업을 수행하는 데 가장 적합한 방법은 임의로 선택한 순열을 원하는지 아니면 모든 순열을 원하는지, 그리고 후자의 경우에는 특정 순서가 필요한지에 따라 달라집니다.또 다른 질문은 주어진 시퀀스에서 항목 간의 가능한 동일성을 고려해야 하는지 여부입니다. 그렇다면 시퀀스의 개별 다중 집합 순열만 생성해야 합니다.
n의 순열을 생성하는 명백한 방법은 Lehmer 코드에 대한 값을 생성하고(최대 n! 정수의 요인 수 체계 표현을 사용하여) 이 값을 해당 순열로 변환하는 것입니다.그러나, 후자의 단계는, 시퀀스로부터의 선택과 임의의 위치에서의 삭제 각각의 n개의 동작을 요구하기 때문에, 배열 또는 링크된 리스트로서의 시퀀스의 명백한 표현들을 요구하기 때문에, 효율적으로 실행하기는 어렵습니다.둘 다 변환을 수행하기 위해 (다른 이유로) n/4 연산이2 필요합니다.n이 다소 작을 가능성이 있는 경우(특히 모든 순열의 생성이 필요한 경우)는 큰 문제가 되지 않지만, 무작위 생성과 체계적 생성 모두에서 훨씬 더 효과적인 간단한 대안이 있는 것으로 밝혀졌습니다.이러한 이유로 O(n logn) 시간 내에 레머 코드에서 순열로의 변환을 수행할 수 있는 특별한 데이터 구조를 사용하는 것은 가능하지만 유용하지는 않아 보입니다.
랜덤 순열 생성
n개 값의 주어진 시퀀스의 랜덤 순열을 생성할 경우 랜덤하게 선택된 n개의 순열을 시퀀스에 적용할지 아니면 시퀀스의 개별적인(다중 집합) 순열 집합에서 랜덤 요소를 선택할지 여부에 차이가 없습니다.이는 반복되는 값의 경우 n의 서로 다른 순열이 여러 개 존재할 수 있고 이로 인해 동일한 순열이 발생할 수 있지만, 이러한 순열의 수는 가능한 각 결과에 대해 동일하기 때문입니다.n!이라는 숫자의 증가로 인해 큰 n에 대해 실행할 수 없게 되는 체계적 생성과는 달리, 무작위 생성에 대해 n이 작을 것이라고 가정할 이유가 없습니다.
랜덤 순열을 생성하는 기본 아이디어는 0 ≤ di < i를 만족하는 정수1 d, d2,..., d의n n! 수열 중 임의의 하나로 생성하고(d는 항상 0이므로1 생략될 수 있음), 이를 객관적 대응을 통해 순열로 변환하는 것입니다.후자의 대응을 위해 (역) 수열을 레머 코드로 해석할 수 있으며, 이것은 1938년 로널드 피셔와 프랭크 [50]예이츠에 의해 처음 발표된 생성 방법을 제공합니다.당시에는 컴퓨터 구현이 문제가 되지 않았지만, 이 방법은 위에서 설명한 레머 코드에서 순열로 효율적으로 변환하는 데 어려움을 겪고 있습니다.이것은 다른 객관적 대응을 사용함으로써 해결될 수 있습니다. d를i 사용하여 시퀀스의 i개의 나머지 요소 중에서 요소를 선택한 후(i의 값을 감소시키기 위해), 요소를 제거하고 추가 요소를 한 곳 아래로 이동시켜 시퀀스를 압축하는 대신, 요소를 최종 나머지 요소와 교환합니다.따라서 선택을 위해 남아 있는 요소는 원래 시퀀스에서 발생한 것과 같은 순서로 발생하지 않을 수도 있지만 각 시점에서 연속적인 범위를 형성합니다.정수의 순서에서 순열로의 매핑은 다소 복잡하지만, 즉각적인 귀납법에 의해 각각의 순열을 정확히 한 가지 방법으로 생성하는 것을 알 수 있습니다.선택한 요소가 최종 남은 요소일 경우 스왑 작업을 생략할 수 있습니다.이는 상태에 대한 테스트를 보장할 만큼 충분히 자주 발생하지는 않지만, 모든 순열이 생성될 수 있도록 최종 요소를 선택 대상에 포함해야 합니다.
의 랜덤 순열을 생성하기 위한 결과 알고리즘a[0], a[1], ..., a[n − 1]
다음과 같이 의사코드로 설명할 수 있습니다.
i에서 2 do ← {0, ..., i - 1 } 스왑 a[d] 및 a[i - 1]의 임의 요소의 경우
이것은 배열의 초기화와 결합될 수 있습니다.a[i] = i
하기와 같이
0에서 n-1 도드까지의 i에 대하여 ← {0, ..., i } a[i] ← a[d] ← i
d = i인 경우 첫 번째 할당은 초기화되지 않은 값을 복사하지만 두 번째 할당은 올바른 값 i로 덮어씁니다.
그러나 피셔-예이츠는 본질적으로 순차적 알고리즘이며 "분할 및 정복" 절차가 병렬로 [51]동일한 결과를 얻을 수 있기 때문에 치환을 생성하는 가장 빠른 알고리즘은 아닙니다.
사전순서대로 생성
주어진 [52]시퀀스의 모든 순열을 체계적으로 생성하는 방법은 여러 가지가 있습니다.고전적이고 단순하며 유연한 알고리즘 중 하나는 사전 정렬에서 다음 순열을 찾는 것에 기반을 두고 있습니다.반복되는 값을 처리할 수 있으며, 이 경우 각각의 고유한 다중 집합 순열을 한 번씩 생성합니다.일반적인 순열의 경우에도 사전 순서로 레머 코드에 대한 값을 생성하고(아마도 요인 수 체계를 사용하여) 이를 순열로 변환하는 것보다 훨씬 효율적입니다.시퀀스를 (약하게) 증가하는 순서로 정렬하는 것으로 시작하여 (사전적으로 최소 순열을 제공하는) 다음 순열이 발견되는 한 다음 순열로 진행하는 것을 반복합니다.이 방법은 14세기 인도의 나라야나 판디타로 거슬러 올라가며,[53] 자주 재발견되고 있습니다.
다음 알고리즘은 주어진 순열 후에 사전식으로 다음 순열을 생성합니다.지정된 순열을 제자리에서 변경합니다.
- a[k] < a[k + 1]과 같은 가장 큰 인덱스 k를 찾습니다.이러한 인덱스가 없는 경우 순열이 마지막 순열입니다.
- a[k] < a[l]와 같이 감사보다 큰 가장 큰 인덱스 l을 찾습니다.
- a[k]의 값과 a[l]의 값을 맞춥니다.
- a[k + 1]에서 최종 요소 a[n]까지 시퀀스를 반전시킵니다.
예를 들어, 수열 [1, 2, 3, 4](증가 순서)가 주어졌을 때, 그리고 지수가 0을 기반으로 한다는 것을 고려하면, 단계는 다음과 같습니다.
- 3이 a[k + 1]보다 작은 4를 만족하는 가장 큰 지수 조건을 만족하는 지수에 배치되기 때문에 지수 k = 2입니다.
- a[k] < a[l] 조건을 만족시키기 위해 4가 3보다 큰 수열의 유일한 값이기 때문에 지수 l = 3입니다.
- a[2]와 a[3]의 값이 스왑되어 새 시퀀스 [1, 2, 4, 3]가 됩니다.
- k-index a[2]에서 최종 요소까지의 순서는 반대입니다.이 인덱스(3) 뒤에 하나의 값만 있기 때문에 이 인스턴스에서는 시퀀스가 변경되지 않습니다.따라서 초기 상태의 사전법적 후속 순서는 [1, 2, 4, 3]으로 치환됩니다.
이 알고리즘에 따라 다음 사전 순열은 [1, 3, 2, 4]가 되며, 24번째 순열은 a[k] < a[k + 1]이 존재하지 않는 [4, 3, 2, 1]이 되어 마지막 순열임을 나타냅니다.
이 방법은 초기 [54]정렬을 세지 않고 전체 시퀀스에 걸쳐 상각된 순열당 약 3개의 비교와 1.5개의 스왑을 사용합니다.
변경사항이 최소화된 세대
위 알고리즘의 대안인 슈타인하우스-Johnson-Trotter 알고리즘은 출력에서 연속되는 두 개의 순열이 인접한 두 값을 교환하여 서로 다르다는 속성을 가진 주어진 시퀀스의 모든 순열에 대한 순서를 생성합니다.순열에 대한 이 명령은 17세기 영국의 종소리꾼들에게 알려져 있었고, 그들 중에서 "평범한 변화"라고 알려져 있었습니다.이 방법의 한 가지 장점은 한 순열에서 다음 순열로 변경되는 양이 적으면 순열당 일정한 시간 내에 이 방법을 구현할 수 있다는 것입니다.마찬가지로 모든 다른 출력 [53]순열을 건너뛰어 짝수 순열의 부분 집합을 순열당 일정 시간으로 다시 쉽게 생성할 수 있습니다.
슈타인하우스의 대안.Johnson-Trotter는 1977년 [55]Robert Sedgewick이 응용 프로그램에서 [52]순열을 생성하는 가장 빠른 알고리즘이라고 말한 힙의 알고리즘입니다.
다음 그림은 n = n =의 모든 순열을 생성하기 위한 앞서 언급된 3개의 알고리즘과 문헌에 설명된 6개의 추가 알고리즘의 출력을 보여줍니다.
- 사전순서화 순서;
- 슈타인하우스-Johnson-Trotter 알고리즘;
- 힙의 알고리즘;
- 에를리히의 별-변위 알고리즘:[53] 각 단계에서 순열의 첫 번째 항목은 나중의 항목과 교환됩니다.
- 잭스의 접두사 반전 알고리즘:[57] 각 단계에서 현재 순열의 접두사를 반전시켜 다음 순열을 얻습니다.
- 사와다-윌리엄스의 알고리즘:[58] 각각의 순열은 한 위치만큼 순환적으로 왼쪽으로 이동하거나 처음 두 개의 항목을 교환함으로써 이전의 순열과 다릅니다.
- 코벳의 알고리즘:[59] 각 순열은 어떤 접두사가 한 위치만큼 순환적으로 왼쪽으로 이동함으로써 이전의 순열과 다릅니다.
- 단선 순서:[60] 각 열은 다른 열의 순환 이동입니다.
- 단일 트랙 회색 코드:[60] 각 열은 다른 열의 순환 이동이며, 두 개의 연속 순열은 한 개 또는 두 개의 위치에서만 다릅니다.
평균 순열
평균 시스템은 대체 순열의 특별한 부분 집합인 평균 순열을 발생시킵니다.{1, 2, ..., 2n} 집합의 대체 순열은 순환 순열(고정된 점이 없는)로, 순환 표기법의 숫자가 홀수 정수와 짝수 정수를 번갈아 사용합니다.평균 순열은 RNA 2차 구조 분석에 유용합니다.모든 대체 순열이 평균 순열인 것은 아닙니다.힙의 알고리즘을 수정하여 모든 (2n)! [61][unreliable source?]순열을 생성하지 않고 순서 n(즉, 길이 2n)의 모든 대체 순열을 생성합니다.이러한 대체 순열을 생성해야 분석하여 평균인지 여부를 확인할 수 있습니다.
알고리즘은 재귀적입니다.다음 표에는 절차의 단계가 나와 있습니다.이전 단계에서 길이 5의 모든 대체 순열이 생성되었습니다.각 사본 3부에는 오른쪽 끝에 "6"이 추가된 다음 마지막 항목과 짝수 위치의 이전 항목을 포함하는 다른 전치가 적용됩니다(아이덴티티 포함, 전치 없음).
이전세트 | 자릿수의 전치 | 교대 순열 |
---|---|---|
1-2-3-4-5-6 | 1-2-3-4-5-6 | |
4, 6 | 1-2-3-6-5-4 | |
2, 6 | 1-6-3-4-5-2 | |
1-2-5-4-3-6 | 1-2-5-4-3-6 | |
4, 6 | 1-2-5-6-3-4 | |
2, 6 | 1-6-5-4-3-2 | |
1-4-3-2-5-6 | 1-4-3-2-5-6 | |
2, 6 | 1-4-3-6-5-2 | |
4, 6 | 1-6-3-2-5-4 | |
1-4-5-2-3-6 | 1-4-5-2-3-6 | |
2, 6 | 1-4-5-6-3-2 | |
4, 6 | 1-6-5-2-3-4 |
적용들
순열은 터보 코드와 같은 오류 검출 및 수정 알고리즘의 인터리버 구성 요소에 사용되며, 예를 들어 3GPP Long Term Evolution 이동통신 표준은 이러한 아이디어를 사용합니다(3GPP 기술 사양 36.212[62] 참조).이러한 응용 프로그램은 특정 바람직한 특성을 만족시키는 순열의 빠른 생성에 대한 문제를 제기합니다.방법 중 하나는 순열 다항식을 기반으로 합니다.또한 유니크 퍼뮤테이션 [63]해싱에서 최적의 해싱을 위한 베이스로 사용됩니다.
참고 항목
메모들
- ^ 그 순서는 종종 암묵적으로 이해됩니다.정수 집합은 자연스럽게 작은 것부터 큰 것까지 쓰여집니다. 문자 집합은 사전 순서대로 쓰여집니다.다른 집합의 경우 자연 순서를 명시적으로 지정해야 합니다.
- ^ 1은 비상호화 그룹에서 아이덴티티 요소를 나타내는 데 자주 사용됩니다.
- ^ 더 정확하게 말하면, 반복되지 않는 변형입니다.이 용어는 다른 언어에서 여전히 흔하며 번역에서 가장 자주 현대 영어로 나타납니다.
- ^ 이 예제의 자연 순서는 원래 단어의 문자 순서입니다.
- ^ 이전의 텍스트에서는 순환 치환이 순환 치환의 동의어로 사용되기도 했지만, 이는 더 이상 이루어지지 않습니다.카마이클 보기 (1956, 페이지 7)
참고문헌
- ^ 웹스터 (1969)
- ^ 맥코이 (1968, 페이지 152)
- ^ 네링 (1970, 페이지 86)
- ^ Heath, Thomas Little, Sir (1981). A history of Greek mathematics. New York: Dover Publications. ISBN 0-486-24073-8. OCLC 7703465.
{{cite book}}
: CS1 유지 : 여러 이름 : 저자 목록 (링크) - ^ Broemeling, Lyle D. (1 November 2011). "An Account of Early Statistical Inference in Arab Cryptology". The American Statistician. 65 (4): 255–257. doi:10.1198/tas.2011.10191. S2CID 123537702.
- ^ Biggs, N. L. (1979). "The Roots of Combinatorics". Historia Math. 6 (2): 109–136. doi:10.1016/0315-0860(79)90074-0.
- ^ 스테드먼 1677, 페이지 4.
- ^ 스테드먼 1677쪽 5쪽
- ^ Stedman 1677, 페이지 6-7.
- ^ 스테드먼 1677쪽 8쪽
- ^ Stedman 1677, 페이지 13-18.
- ^ Rejewski, Marian (1980). "An application of the theory of permutations in breaking the Enigma cipher". Applicationes Mathematicae. 16 (4): 543–559. doi:10.4064/am-16-4-543-559. ISSN 1233-7234.
- ^ Cash, David (2019). "CMSC 28400 Introduction to Cryptography Autumn 2019 - Notes #2: Permutations and Enigma" (PDF).
- ^ "Combinations and Permutations". www.mathsisfun.com. Retrieved 2020-09-10.
- ^ Weisstein, Eric W. "Permutation". mathworld.wolfram.com. Retrieved 2020-09-10.
- ^ Scheinerman, Edward A. (March 5, 2012). "Chapter 5: Functions". Mathematics: A Discrete Introduction (3rd ed.). Cengage Learning. p. 188. ISBN 978-0840049421. Archived from the original on February 5, 2020. Retrieved February 5, 2020.
It is customary to use lowercase Greek letters (especially π, σ, and τ) to stand for permutations.
- ^ Cameron 1994, p. 29, 각주 3.
- ^ Wussing, Hans (2007), The Genesis of the Abstract Group Concept: A Contribution to the History of the Origin of Abstract Group Theory, Courier Dover Publications, p. 94, ISBN 9780486458687,
Cauchy used his permutation notation—in which the arrangements are written one below the other and both are enclosed in parentheses—for the first time in 1815.
- ^ 보가트 1990, 페이지 17
- ^ Gerstein 1987, p. 217
- ^ a b Aigner, Martin (2007). A Course in Enumeration. Springer GTM 238. pp. 24–25. ISBN 978-3-540-39035-0.
- ^ 홀 1959, 페이지 54
- ^ 로트먼 2002, 페이지 41
- ^ 보가트 1990, 페이지 487
- ^ Bona 2012, p.87 [책에 오타/오류가 있습니다. (54)가 아니라 (45)가 있습니다.]
- ^ a b Stanley, Richard P. (2012). Enumerative Combinatorics: Volume I, Second Edition. Cambridge University Press. p. 23. ISBN 978-1-107-01542-5.
- ^ Kitaev, Sergey (2011). Patterns in Permutations and Words. Springer Science & Business Media. p. 119. ISBN 978-3-642-17333-2.
- ^ Biggs, Norman L.; White, A. T. (1979). Permutation groups and combinatorial structures. Cambridge University Press. ISBN 978-0-521-22287-7.
- ^ Dixon, John D.; Mortimer, Brian (1996). Permutation Groups. Springer. ISBN 978-0-387-94599-6.
- ^ Cameron, Peter J. (1999). Permutation groups. Cambridge University Press. ISBN 978-0-521-65302-2.
- ^ Jerrum, M. (1986). "A compact representation of permutation groups". J. Algorithms. 7 (1): 60–78. doi:10.1016/0196-6774(86)90038-6. S2CID 18896625.
- ^ 우스펜스키 1937, 페이지 18
- ^ Charalambides, Ch A. (2002). Enumerative Combinatorics. CRC Press. p. 42. ISBN 978-1-58488-290-9.
- ^ Brualdi 2010, 페이지 46, 정리 2.4.2
- ^ 브루알디 2010, 페이지 47
- ^ 브루알디 2010, 페이지 39
- ^ Bona 2012, 페이지 97-103.
- ^ Sagan, Bruce (2001), The Symmetric Group (2 ed.), Springer, p. 3
- ^ 험프리스 1996, 페이지 84.
- ^ 홀 1959, 페이지 60
- ^ Bonna 2004, p. 4f.
- ^ 보나 2012, 페이지 4-5.
- ^ 보나 2012, 25쪽.
- ^ a b c 보나 2012, 페이지 109-110.
- ^ Slocum, Jerry; Weisstein, Eric W. (1999). "15 – puzzle". MathWorld. Wolfram Research, Inc. Retrieved October 4, 2014.
- ^ Bonna 2004, 페이지 43.
- ^ Bonna 2004, pp. 43ff.
- ^ Knuth 1973, p. 12.
- ^ H. A. Roth, Samlung combinatorisch-analytischer Abhandlungen 2 (Leipzig, 1800), 263–305Knuth 1973, 페이지 14에서 인용됨
- ^ Fisher, R.A.; Yates, F. (1948) [1938]. Statistical tables for biological, agricultural and medical research (3rd ed.). London: Oliver & Boyd. pp. 26–27. OCLC 14222135.
- ^ Bacher, A.; Bodini, O.; Hwang, H.K.; Tsai, T.H. (2017). "Generating Random Permutations by Coin Tossing: Classical Algorithms, New Analysis, and Modern Implementation" (ACM Trans. Algorithms 13(2): 24:1–24:43 ed.). pp. 24–43.
- ^ a b Sedgewick, R (1977). "Permutation generation methods" (PDF). Computing Surveys. 9 (2): 137–164. doi:10.1145/356689.356692. S2CID 12139332. Archived (PDF) from the original on 2008-02-21.
- ^ a b c Knuth 2005, 페이지 1-26.
- ^ "std::next_permutation". cppreference.com. 4 December 2017. Retrieved 31 March 2018.
- ^ Heap, B. R. (1963). "Permutations by Interchanges". The Computer Journal. 6 (3): 293–298. doi:10.1093/comjnl/6.3.293.
- ^ Mütze, Torsten; Sawada, Joe; Williams, Aaron. "Generate permutations". Combinatorial Object Server. Retrieved May 29, 2019.
- ^ Zaks, S. (1984). "A new algorithm for generation of permutations". BIT Numerical Mathematics. 24 (2): 196–204. doi:10.1007/BF01937486. S2CID 30234652.
- ^ Sawada, Joe; Williams, Aaron (2018). "A Hamilton path for the sigma-tau problem". Proceedings of the 29th Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2018. New Orleans, Louisiana: Society for Industrial and Applied Mathematics (SIAM). pp. 568–575. doi:10.1137/1.9781611975031.37.
- ^ Corbett, P. F. (1992). "Rotator graphs: An efficient topology for point-to-point multiprocessor networks". IEEE Transactions on Parallel and Distributed Systems. 3 (5): 622–626. doi:10.1109/71.159045.
- ^ a b Arndt, Jörg (2011). Matters Computational. Ideas, Algorithms, Source Code. Springer. doi:10.1007/978-3-642-14764-7. ISBN 978-3-642-14763-0.
- ^ Alexiou, A.; Psiha, M.; Vlamos, P. (2011). "Combinatorial permutation based algorithm for representation of closed RNA secondary structures". Bioinformation. 7 (2): 91–95. doi:10.6026/97320630007091. PMC 3174042. PMID 21938211.
- ^ "3GPP TS 36.212".
- ^ Dolev, Shlomi; Lahiani, Limor; Haviv, Yinnon (2013). "Unique permutation hashing". Theoretical Computer Science. 475: 59–65. doi:10.1016/j.tcs.2012.12.047.
서지학
- Bogart, Kenneth P. (1990), Introductory Combinatorics (2nd ed.), Harcourt Brace Jovanovich, ISBN 978-0-15-541576-8
- Bóna, Miklós (2004), Combinatorics of Permutations, Chapman Hall-CRC, ISBN 978-1-58488-434-7
- Bona, Miklos (2012), Combinatorics of Permutations (2nd ed.), CRC Press, ISBN 978-1-4398-5051-0
- Brualdi, Richard A. (2010), Introductory Combinatorics (5th ed.), Prentice-Hall, ISBN 978-0-13-602040-0
- Cameron, Peter J. (1994), Combinatorics: Topics, Techniques, Algorithms, Cambridge University Press, ISBN 978-0-521-45761-3
- Carmichael, Robert D. (1956) [1937], Introduction to the theory of Groups of Finite Order, Dover, ISBN 978-0-486-60300-1
- Fraleigh, John B. (1976), A First Course In Abstract Algebra (2nd ed.), Reading: Addison-Wesley, ISBN 0-201-01984-1
- Gerstein, Larry J. (1987), Discrete Mathematics and Algebraic Structures, W.H. Freeman and Co., ISBN 978-0-7167-1804-8
- Hall, Marshall Jr. (1959), The Theory of Groups, MacMillan
- Humphreys, J. F. (1996), A course in group theory, Oxford University Press, ISBN 978-0-19-853459-4
- Knuth, Donald (1973), Sorting and Searching, The Art of Computer Programming, vol. 3 이 책에서는 연습 5.1.1–7(p.19)의 반전표의 변형1 C,...,C로n 레머 코드를 다른 두 가지 변형과 함께 언급합니다.
- Knuth, Donald (2005), Generating All Tuples and Permutations, The Art of Computer Programming, vol. 4, Addison–Wesley, ISBN 978-0-201-85393-3 제2절, 첫번째 인쇄입니다.
- McCoy, Neal H. (1968), Introduction To Modern Algebra, Revised Edition, Boston: Allyn and Bacon, LCCN 68015225
- Nering, Evar D. (1970), Linear Algebra and Matrix Theory (2nd ed.), New York: Wiley, LCCN 76091646
- Rotman, Joseph J. (2002), Advanced Modern Algebra, Prentice-Hall, ISBN 978-0-13-087868-7
- Stedman, Fabian (1677), Campanalogia, London 출판사는 "헌신"이라는 사회가 속해 있는 대학 청소년 협회의 대리인으로 활동하고 있는 윌리엄 스미스일 가능성이 있는 "W.S."로 주어집니다.인용문에서 원래의 긴 "S"는 현대의 짧은 "s"로 대체되었습니다.
- Uspensky, James (1937), Introduction to Mathematical Probability, McGraw-Hill
- Webster's Seventh New Collegiate Dictionary, Springfield: G. & C. Merriam Company, 1969
추가열람
- Biggs, Norman L. (2002), Discrete Mathematics (2nd ed.), Oxford University Press, ISBN 978-0-19-850717-8
- Foata, Dominique; Schutzenberger, Marcel-Paul (1970), Théorie Géométrique des Polynômes Eulériens, Lecture Notes in Mathematics, vol. 138, Berlin, Heidelberg: Springer-Verlag, ISBN 978-3-540-04927-2Foata, Dominique; Schutzenberger, Marcel-Paul (1970), Théorie Géométrique des Polynômes Eulériens, Lecture Notes in Mathematics, vol. 138, Berlin, Heidelberg: Springer-Verlag, ISBN 978-3-540-04927-2이 링크는 Springer-Verlag가 원래 출판한 텍스트의 자유로운 재입력(LaTeX'ed) 및 수정판에 대한 것입니다.
- Knuth, Donald (1998), Sorting and Searching, The Art of Computer Programming, vol. 3 (Second ed.), Addison–Wesley, ISBN 978-0-201-89685-5Knuth, Donald (1998), Sorting and Searching, The Art of Computer Programming, vol. 3 (Second ed.), Addison–Wesley, ISBN 978-0-201-89685-5섹션 5.1: 순열의 조합 특성, 페이지 11-72.
- Sedgewick, Robert (1977). "Permutation generation methods". ACM Computing Surveys. 9 (2): 137–164. doi:10.1145/356689.356692. S2CID 12139332.
- Masato, Kobayashi (2011). "Enumeration of bigrassmannian permutations below a permutation in Bruhat order". Order. 1: 131–137.
외부 링크
- "Permutation", Encyclopedia of Mathematics, EMS Press, 2001 [1994]