나는 순열과 변형을 생성 할 수있는 C# 방법을 고안하려고합니다. 나는 그것을 예제에서 가장 잘 설명한다고 생각한다. 이 작업을 수행하는 가장 좋은 방법을 찾고 있습니다. 이것이 내 머리 속에서 어떻게 생각하고 있는지.순열/변형
이 방법에 대한 제안을 찾고 있는데요, 아마도 의사 코드입니까? |
ABC
ACB
BAC
BCA
CAB
CBA
단계 2)와 편차 :
ABC는 반복없이
단계 1) 치환된다
ABC
A|BC
AB|C
ACB
A|CB
AC|B
BAC
B|AC
BA|C
BCA
B|CA
BC|A
CAB
C|AB
CA|B
CBA
C|BA
CB|A
그래서 당신은
A|BC
AB|C
A|CB
AC|B
B|AC
BA|C
B|CA
BC|A
C|AB
CA|B
C|BA
CB|A
업데이트의 최종 세트와 끝까지 : 내가 쓴 그냥 빨리 구현, 내가 의견 오신 것을 환영합니다, 그것은 끔찍한 알고있다.
var perms = Permuter.Permute(new Char[] {'a', 'b', 'c'}).ToList();
DisplayResult(perms);
foreach (var permutation in perms.ToList())
{
var p = permutation.ToList();
int splitPos = 1;
do
{
for (int i = 0; i < splitPos; i++)
{
Console.Write(p[i]);
}
Console.Write("|");
for (int j = splitPos; j < p.Count; j++)
{
Console.Write(p[j]);
}
Console.WriteLine("");
splitPos++;
} while (splitPos < p.Count);
}
결과를 어떻게 문자열로 나타내시겠습니까? –
A, B 및 C는 실제로 정수 집합입니다. – myew
'A | BC | D'는 ABCD의 변형입니까? –