特定の条件で再帰からのすべての出力を格納するコードを記述しようとしています。再帰中の出力を格納する
私のMATLABコードは次のようになります。
function answer= rec_solve(M, remainingValue, previousLevel, solutionSoFar)
if (M == 1)
answer= [solutionSoFar remainingValue];
% store only the outputs that reach here
else
for i=previousLevel:remainingValue/M
s= [solutionSoFar i];
rec_solve(M-1, remainingValue-i, i, s);
end
end
end
私は行列状態に達する出力のみ(M == 1)を格納しようとしたが、成功せず。 それは他の関数でラップする必要があると思いますが、正しい方法でラップする方法がわかりません。 「;」が付いている場合は、印刷結果をexacllyで保存したいと思うようです。条件(ライン3)の内部で取り下げられます。
ありがとうございました!
まあ、答えは関数の出力ですので、なぜ私は結果としてそれを得ることはできませんか?関数をループするか、正確にどこに格納するのが問題なのですか? – KiW
物事は、私は 'If' statemantからの回答のみを保存したいと思っています。そこに到達する再帰によって何度もありますが、どうすればそのようにすることができますか?最終的な答えは、必要なN個の回答のうち1個だけです。 –
サンプル入力とこの関数の出力を教えてください。 – beaker