私はこのように頭の中に描いている2次元配列(大きさはn = 5)を持っています(各ボックスは配列の要素です) ):2D配列を循環させる方法
(http://tr1.cbsistatic.com/hub/i/2015/05/07/b1ff8c33-f492-11e4-940f-14feb5cc3d2a/12039.jpg)このイメージに
、nは3である。すなわち、nは列の数であり、5は私のアレイ内の行の数です。
最も左の列のセルから最も右の列のセルまでのすべてのパスを反復(つまり、歩く)し、その間の各列から1つのセルを選択する効率的な方法を探したいと思います。
nは実行時にのみ決定されるため、n個のネストされたループで単純に解決することはできません。
これは、再帰が最善の方法であると考えていますが、理論的にどのように開始するかを描写できないと思います。
すべてのパスを循環する方法についていくつかのアドバイスを提供できますか?それは十分に簡単だと私は間違って何を言っていることはできません。どんなコードもなく理論的な説明だけでも非常に高く評価されます。
私はC#、Visual Studioでコーディングしています。 http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-10-recursion/#_Toc362296468
static void NestedLoops(int currentLoop)
{
if (currentLoop == numberOfLoops)
{
return;
}
for (int counter=1; counter<=numberOfIterations; counter++)
{
loops[currentLoop] = counter;
NestedLoops(currentLoop + 1);
}
}
この問題を自分で解決するための試みを行ってください。 – Nate
*「最も左の列のセルから最も右の列のセルまで、各列のセルを1つ選択するすべてのパスを反復する(つまり、歩く)効率的な方法を探したい」* *それよりはるかに優れたルールを定義する必要があります。私がセル 'm、n 'に入っていれば、どのセルを列' n + 1'に入れることができますか? –
1.左端の列からy0に任意のx座標を入力します。2.セル(x、y)内にある場合、x座標(x + 1)のセルに移動することはできますが、任意のy座標3.すべてのx座標の右端の列ynで終わらなければならない – projectprogrammer