0

そのため、辞書順列を生成できるアルゴリズムを読みました。例: 1-2-3-4-5->1-2-3-5-4->1-2-4-3-5->...->5-4-3-2-1

ただし、いくつかの順列をスキップするブール条件を課したいと思います。

私が持っているとしましょう: 1-2-3-4-5 1-2-3-5-4 。. . 他のすべての 1-2-XXX をスキップして 1-3-2-4-5 に移動したい

2 と 3 を入れ替えて、残りの 3 つの数字を並べ替えるのが最善の方法でしょうか? または、より高速な別の方法はありますか?

4

2 に答える 2

0

あなたが求めているのは階乗ベースと呼ばれ、必要に応じて正しい量でカウンターを進めることができます. 詳細については、こちらをご覧ください: http://efesx.com/2009/11/14/enumerating-permutations/ (およびhttp://marknelson.us/2002/03/01/next-permutation/でも)

于 2013-04-12T23:39:55.810 に答える