私は常に、アルゴリズム、ソート、暗号、バイナリ ツリー、データ圧縮、メモリ操作などに興味を持っていました。
STL 関数 next_perm() を使用した C++ の順列に関する Mark Nelson の記事を読みました。非常に興味深くて便利です。その後、Delphi で次の順列を取得するためのクラス メソッドを 1 つ作成しました。これが現在最もよく使用しているツールだからです。この関数は辞書順で機能します。スタックオーバーフローに関する別のトピックの回答からアルゴのアイデアを得ましたが、今は大きな問題があります。ベクター内の要素が繰り返される順列を使用していますが、必要のない順列がたくさんあります。たとえば、辞書順で 7 つの要素の次の最初の順列があります。
6667778 (6 = 連続 3 回、7 = 連続 3 回)
私の作品では、次のように最大 2 つの要素が連続して繰り返されるパーマのみが有効であると考えています。
6676778 (6 = 連続 2 回、7 = 連続 2 回)
要するに、受け取ったパラメーターに応じて、最大で N 回連続して繰り返される順列のみを返す関数が必要です。
すでにこれを行っているアルゴリズムがあるかどうかは誰にもわかりませんか?
テキストに誤りがあれば申し訳ありませんが、私はまだ英語をあまり上手に話せません。
どうもありがとう、カルロス