次の質問は、GRE コンピューター サイエンス テスト 2001で出題されました。
Q-67: 次のC コードを考えてください。
int f(int x) {
if(x<1) {
return 1;
} else {
return f(x-1)+g(x);
}
}
int g(int x) {
if(x<2) {
return 1;
} else {
return f(x-1)+g(x/2);
}
}
次のうち、x の関数としての f(x) の成長を最もよく表しているのはどれですか?
(A)対数 (B)線形 (C) 2 次 (D) 3 次 (E)指数
ちなみに、正解は(E) Exponential (解答解説に記載) です。しかし、それを解決するための正確な方法はわかりません。
上記の再帰関係を解決できる人はいますか? 別のアプローチはありますか?
あなたの意見を共有してください。