この質問は、私が書き込もうとしている、物理的なパーツのチェーンを接続するプログラムに関するものです。私はそれを質問の最も単純な形に蒸留したと思います。また、この問題を説明する追加の単語を誰かが知っていれば幸いです。関連する質問を検索してから約30分でも、この問題の名前が見つからなかったからです。
N個のベクトルがあります。各ベクトルから1つの値を選択し、繰り返しを許可しない場合、私が見つけようとしているタイプの1つの順列があります。ブルートフォースなしでそれらすべてを見つけるための擬似コードアルゴリズムとは何ですか?
例:
あなたはベクトルを持っています
v1=[1 2] v2=[1 2 3] v3=[1 2 3 4]
(注を編集:ベクトルのネストは意図的ではなく、アルゴリズムで利用することはできません。)各ベクトルから値を選択し、繰り返しを許可しません。
Value 1 is from v1 ---> 2
Value 2 is from v2 ---> 1
Value 3 is from v3 ---> 4
Resulting permutation is [2 1 4].
これは許容される順列の1つです。これは、繰り返されるために許可されない順列の例です。
Value 1 is from v1 ---> 2
Value 2 is from v2 ---> 1
Value 3 is from v3 ---> 2
Resulting permutation is [2 1 2], which is invalid due to repeats.
すべての有効な順列を見つけるためのアルゴリズムは何ですか?
それらを計算する前に、いくつの順列があるかを計算できる場合のボーナスポイント。
誰よりも早く答えを思いつくことができれば、必ず投稿します。