2017-12-20 10 views
-4

私は本当にまだ把握できない問題を見ています。繰り返しですべてのオプションを見つけるには?

私はすべて(今は正しい数学の用語)の順列が必要ですか?タプル?組み合わせ?与えられた4つの要素から作られた反復で。

私は要素A、B、C、Dを持っています。そのうちの4つがあり、金額は固定されています。 nの場合、これらの4つの要素からすべての可能なオプションを得る必要があります。例えば:

N = 1。 可能なオプション: B C D

N = 2。 可能なオプション: AA AB AC AD BA BB BC BD ... DC DD

N = 4。可能なオプション:AAAA AAAB AAAC ... DDDC DDDD

誰でも一種のどこかに私を導くことができるだろうか?以下のようないくつかの条件がありますが、外出先でフィルタリングする必要があります。もちろん、私は答えを探してみましたが、私は解決しようとしている同じ問題ではないようです。

私はちょうど正しい方向に私を挟み込もうとする人には大変感謝しています。

+2

問題は何ですか?あなたはどうやってこれをしますか?私はペンと紙を体系的に意味します。 –

+0

この宿題やプログラマーはテストですか? –

+0

そしてnが指数関数的に増加する数はあなたにとって問題ではありませんか? k個の要素と与えられたnの集合に対して、k^n個の組み合わせが存在する。 –

答えて

0
あなたが必要とするので、あなたは、ネストされたループを使用してそれを行うことはできません

N forループとn最初に決定(および使用するばかげnはループの入れ子になっている)されていません。問題を解決するための1つのアプローチは、再帰関数を使用することです。再帰関数は、n = 1の場合は4文字で構成され、n> 1の場合はパラメータ(n-1)で自分自身を呼び出し、4つの文字のそれぞれを再帰呼び出しの各返された文字列に追加する必要があります。次の擬似コードを読む前に、自分で実装しようとお勧めします!

list func(int n){ 
    if (n == 1) {return list('A', 'B', 'C', 'D'); } 
    else { 
    result = list(); 
    permutations = func(n-1); 
    for (each item in permutations) { 
     result.append(item+'A'); 
     result.append(item+'B'); 
     result.append(item+'C'); 
     result.append(item+'D'); 
     return result; 
    } 
    } 
} 
関連する問題