Implemente a função
definida recursivamente por:
, se
, se
, se
Passo 1
Vamos implementar a função h(m,n) definida recursivamente, que usa dois casos de base e um caso recursivo. O conteúdo envolve entender como traduzir definições matemáticas em chamadas de função recursivas, garantindo que a recursão termine nos casos de base.
Passo 2
Identificamos os casos de base diretamente da definição: se n = 1, então h(m,n) = m + 1; se m = 1, então h(m,n) = n + 1. Esses casos evitam chamadas infinitas.
Passo 3
No caso geral, quando m > 1 e n > 1, a definição diz que h(m,n) = h(m, n-1) + h(m-1, n). Ou seja, devemos chamar a própria função reduzindo um dos parâmetros em cada chamada.
Passo 4
Agora, basta traduzir essas três condições em código Python, com um teste para cada caso e retornando o valor correspondente.
Resposta
def h(m, n):
if n == 1:
return m + 1
if m == 1:
return n + 1
return h(m, n-1) + h(m-1, n)