私は10のテキストファイルに1、-1,0の1つの列を含んでいます。 各ファイルの要素を合計する組み合わせを設定したいと思います。アルゴリズムのループの組み合わせ
たとえば、10個のファイルのうち2個のファイルのすべての組み合わせを表示するには、以下の2つのループを作成します。 double sum;
for(int i;i=0;i<n;i++){
for(int j;j=i;j<n;j++){
sum += x[i]+x[j];
}
}
別の例として、私は10個のファイルの中から3つのファイルのすべての組み合わせを見たい場合は、私は以下の3つのループ作成します。私が見たい場合は、その上の
for(int i;i=0;i<n;i++){
for(int j;j=i;j<n;j++){
for(int k;k=j;k<n;k++)
sum += x[i]+x[j]+x[k];
}
}
}
と10個のファイルの中でx個のファイルを組み合わせると、x個のループが作成されます。
私の質問です:私はxを選択してループの数を決定するアルゴリズムを探しています。もしx = 2なら、私は2つのループを作成し、x = 3なら3つのループを作成し、x = 4なら4つのループを作成します。 多くのありがとう
そして、あなたは50個のファイル、50個の、ネストされたループを持っていた場合のために?それは気違いです。言うまでもなく、 'std :: next_permutation'をいくつかのロジックとともに使用して、1つ(または2つ)のループが必要な組み合わせを生成するような良い方法がありますアイテム数 – PaulMcKenzie
@PaulMcKenzie 'std :: next_permutation'は、TSがコンビネーションではなくコンビネーションを必要とするので、ここではあまり役に立ちません。 – alexeykuzmin0
@ alexeykuzmin0 - あなたは間違っています。 [std :: next_permutation]を使用して、[何らかの努力を払うと]組み合わせを生成することができます(http://stackoverflow.com/questions/9430568/generating-combinations-in-c)。そのトリックは、ブール値で構成されるコントロール配列を使用することです。 – PaulMcKenzie