0

この漸化式を解く必要があります:f(n)= 5 * f(n-1)-2 * f(n-2)、f(0)= 1およびf(1)=2。私は以下のコードを書きましたが、それは正解を与えていません-正解は26ですが(私が正しく計算したと仮定して)、たとえばn=4の場合は164を出力します。

public static int recurFunction(int n) {
    if(n == 0) {
        return 1;
    } else if(n == 1) {
        return 2;
    } else {
        n = ((5 * recurFunction(n - 1)) - (2 * recurFunction(n - 2)));
        return n;
    }
}
4

2 に答える 2

6

あなたの数学は間違っています:)

f(n)= 5 * f(n-1)-2 * f(n-2)

f(0) = 1
f(1) = 2
f(2) = 5 * f(1) - 2 * f(0) = 5 * 2 - 2 * 1 = 10 - 2 = 8
f(3) = 5 * f(2) - 2 * f(1) = 5 * 8 - 2 * 2 = 40 - 4 = 36
f(4) = 5 * f(3) - 2 * f(2) = 5 * 36 - 2 * 8 = 180 - 16 = 164
于 2012-10-13T00:11:52.797 に答える
2

あなたの Java コードは正しいように見えますが、あなた自身の計算は正しくありません。

f(2) = 5f(1) - 2f(0) = 5 * 2 - 2 * 1 = 10 - 2 = 8
f(3) = 5f(2) - 2f(1) = 5 * 8 - 2 * 2 = 40 - 4 = 36
f(4) = 5f(3) - 2f(2) = 5 * 36 - 2 * 8 = 180 - 16 = 164
于 2012-10-13T00:17:36.977 に答える