2017-10-26 19 views
1

Mark OvermarsがGameMaker 8.0を使用していて、GMLが必要なものと同等でない限り、擬似コード()のヘルプを探しています。リスト/配列の生成方法はです。サイズが可変であるX個の整数のセットの一意的な組み合わせ。 1-5または1-1000にすることができます。例えば整数のユニークな組み合わせを生成する

IntegerList {1,2,3,4}

1,2-

1,3-

1,4

2、 3

2,4

3,4

この背後にある数学は簡単であるように私は、私はちょうどそのようなC++やJavaなどの言語でそれを行う方法で、複数のソースを確認した後、それのまわりで私の頭をラップするように見えるカント感じます。みんな、ありがとう。

答えて

1

多くの詳細は、問題の存在ではないので、私が想定しています

  • をご入力は自然数nと、結果の配列が1からnにすべての自然数が含まれています。
  • 上記の組み合わせによって与えられる期待出力は、対称関係に似ています。 e。あなたの場合[1, 2][2, 1]と同じとみなされます。
  • 組み合わせ[x, x]は除きます。
  • 2つの要素の組み合わせのみが存在します。
  • List<>データ型または動的配列がないため、配列を作成する前に配列の長さを知る必要があります。
  • したがって、結果の要素の数は、(例では4!/(2! * (4 - 2)!) = 24/4 = 6)です。!は階乗です。

まず、最初のn個の自然数で配列を初期化するには、配列要素インデックスを使用するのが簡単です。ただし、インデックスは配列要素のプロパティであるため、最初にそれらを初期化する必要はありません。

アレイを処理する2つのネストループが必要です。外側ループ範囲iは、1からn - 1まで、jから2まで、nからです。インデックスが1の代わりに0から始まる場合は、これをループ制限のために考慮する必要があります。今度は、ターゲットアレイを[i, j]の組み合わせで塗りつぶすだけです。ターゲット配列で正しいインデックスを見つけるには、3番目のカウンタ変数を使用し、最初のインデックスで初期化し、内側のループの最後でインクリメントします。

私は、後ろの数学はそれほど難しくないと私は同意します。この説明は、あなた自身で対応するコードを開発するのに十分であると思います。

+0

ありがとうございました、私は頭を包み込みたいと思っていました。あなたはデータの条件と入力が正しいと仮定しており、私はまずは簡潔ではないことをお詫びします。 –

+0

喜んでそれは助けた:) –

関連する問題