c# を使用して、再帰関数を使用せずに文字配列の n 番目の順列を計算し、n 番目の順列の文字配列を返すメソッドを作成したいと考えています。
例えば
If the array is ABC the second permutation is ACB
.誰でも私を助けることができます
c# を使用して、再帰関数を使用せずに文字配列の n 番目の順列を計算し、n 番目の順列の文字配列を返すメソッドを作成したいと考えています。
例えば
If the array is ABC the second permutation is ACB
.誰でも私を助けることができます
codeproject.com には、繰り返しの有無にかかわらず順列とバリエーションに関する優れたプロジェクトがあります。繰り返しのない順列が必要だと思います。
非再帰アルゴリズムでヘルプを提供するには、順列ロジックが何であるかが十分に明確ではありません。
再帰関数を避けたい場合は、処理ロジックを N 回実行するループを使用します。
public string GetPermutation(int n, string source)
{
for (int i = 0; i < n; i++)
{
//modify source
}
return source;
}
通常、辞書順列アルゴリズムは再帰的ではありません。このページには、N 番目の順列にすばやく到達する方法を備えた ac# バリアントがあります。
http://www.mathblog.dk/project-euler-24-millionth-lexicographic-permutation/