Следующий вопрос, который задавали в GRE computer science test 2001.Order of Growth of Recursive Function
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);
}
}
из следующих действий, который наилучшим образом описывает рост из F (х) как функция х?
(А) Логарифмические (Б) Линейный (С) Квадратичные (D) Кубический (Е) Экспоненциальное
Кстати, правильный ответ(E) Экспоненциальный (упомянутый в его ответе ключ). Но я не знаю точного метода решения этого.
Может ли кто-нибудь решить эту проблему Повторные отношения? Есть ли у вас альтернативный подход?
Пожалуйста, поделитесь своими взглядами.
Спасибо @Inspired. Учитывая все условия, окончательные отношения повторения будут следующими: –
Спасибо @Inspired. Учитывая все условия, окончательные рекуррентные соотношения были бы следующими: f (x) = 1 при x <1; f (x) = f (x-1) +1 при x = 1; f (x) = 2 * f (x-1) + g (x/2) при x> 1. –
Важным отношением к росту f (x) является f (x) = 2 * f (x-1) + g (x/2) при x> 1. Вычисляя порядок роста по частям, мы бы получили O (2^x) для первой части: 2 * f (x-1), но как насчет второй части: g (x/2)? –