Я готовлюсь к среднему семестру, и в одном из практических вопросов задается следующий вопрос:
Рассмотрим рекурсивный псевдоалгоритм Milk (a), который принимает на вход целое число a> = 1.
MILK(a)
if a = 1;
then eat cookie;
else drink glass of milk;
select a random integer b with 1 <= b <= a-1
MILK(b);
MILK(a-b);
endif
1) Объясните, почему для любого целого числа a> = 1 алгоритм MILK (a) завершается
Я думаю, что для этого из-за n-1 возможность для m становится все меньше и меньше для ввода в рекурсивную функцию MILK (b);, в конечном итоге достигая 1, что удовлетворяет условию a = 1; поэтому съедает cookie и таким образом завершает работу алгоритма.
2) Пусть M (a) будет количеством стаканов молока, которое вы выпиваете при использовании МОЛОКА (a). Определите точное значение M (a)
Для этого я предполагаю, что это будет M (a) = a + a, поскольку каждый раз, когда вы запускаете его, 'a' является входом, и сложение каждого ввода вместе даст вам общий результат.
Как выглядят мои ответы? Или это совершенно неверно. Спасибо!
M(a)
? Или ожидаемое значение? - person phimuemue   schedule 15.10.2013