OneCompiler

Lista 1 MD2

Recursão Matemática

  1. O cálculo de n! utilizando recursividade (exemplo teste 5!)
def fatorial(n):
    if n == 0: return 1  # caso base
    else: return n*fatorial(n-1)  # chamada recursiva

resultado = fatorial(5)
print(f"O fatorial de 5 é: {resultado}")
  1. A sequência de Fibonacci
def fibonacci(n):
    if n == 0 or n == 1: return n  # caso base
    else: return fibonacci(n-1) + fibonacci(n-2)  # chamada recursiva

for i in range(10):
    print(f'Fibonacci({i}) = {fibonacci(i)}')
  1. A impressão recursiva dos números naturais de 1 a n (exemplo teste 1 a 10)
def imprimir(n, i=1):
    if i > n: return  # caso base
    print(f"{i}")
    imprimir(n, i+1)  # chamada recursiva

imprimir(10)
  1. Um método recursivo que receba como entrada um número inteiro positivo n e retorne 1 + 2 + 3 + 4 + … + n
def soma(n):
    if n < 1: return
    if n == 1: return 1  # caso base
    else: return n + soma(n-1)  # chamada recursiva

resultado = soma(10)
print(f"A soma de 1 + 2 + 3 + ... + 10 = {resultado}")

Divisibilidade

  1. Algoritmo de Euclides para o cálculo do MDC
def mdc(a, b):
    if b == 0: return a  # caso base
    else: return mdc(b, a%b)  # chamada recursiva

resultado = mdc(20, 56)
print(f"O MDC entre 20 e 56 é: {resultado}")
  1. Calcular o MMC(a,b) a partir do MDC(a,b)
def mdc(a, b):
    if b == 0: return a  # caso base
    else: return mdc(b, a%b)  # chamada recursiva

def mmc(a,b):
    return abs(a * b) // mdc(a, b)

resultado = mmc(20, 56)
print(f"O MMC entre 20 e 56 é: {resultado}")

Aritmética Modular

  1. Tabela Z_n para adição modular
def tabela_add(n):
    tabela = []
    for a in range(n):
        linha = []
        for b in range(n):
            linha.append((a+b)%n)
        tabela.append(linha)

    print(f"Tabela Z_{n} (Adição Modular):")
    for linha in tabela:
        print(" ".join(map(str, linha)))

tabela_add(5)
  1. Tabela Z_n para multiplicação modular
def tabela_mult(n):
    tabela = []
    for a in range(n):
        linha = []
        for b in range(n):
            linha.append((a*b)%n)
        tabela.append(linha)

    print(f"Tabela Z_{n} (Multiplicação Modular):")
    for linha in tabela:
        print(" ".join(map(str, linha)))

tabela_mult(5)