Implemente a função h definida recursivamente por:
h(m, n)=m+1, se n=1
h(m, n)=n+1, se m=1
h(m, n)=h(m, n-1)+h(m-1, n), se m>1, n>1

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)

Exercícios relacionados