OneCompiler

Lista 1 MD2

Aluno: Gabriel Dantas
Matrícula: 231038072

RECURSÃO MATEMÁTICA

1. o cálculo de n! utilizando recursividade (exemplo teste 5!)

def fatorial(n):
    if n == 0:
        return 1
    else:
       return n*fatorial(n-1)
    

print(fatorial(5))

2. a sequência de Fibonacci

import math

def Fibonacci(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

print(Fibonacci(8))

3. a impressão recursiva dos números naturais de 1 a n (exemplo teste 1 a 10)

def imprimirNumeros(n):
    if n == 0:
        print(n)
    else:
        print(n)
        imprimirNumeros(n-1)

imprimirNumeros(10)

4. um método recursivo que receba como entrada um número inteiro positivo n e retorne 1 + 2 + 3 + 4 + … + n

python

def SomaRecursiva(n):
    if n == 0:
        return 0
    else:
        return n + SomaRecursiva(n-1)

print(SomaRecursiva(6))

DIVISIBILIDADE

5. Algoritmo de Euclides para o cálculo do MDC

python

def Euclides(n, m):
    if m == 0:
        return n
    else:
        return Euclides(m, n % m)
    
print(Euclides(221, 136))

6. Calcular o MMC(a,b) a partir do MDC(a,b)

python

def mdc(n, m):
    if m == 0:
        return n
    else:
        return mdc(m, n % m)


def mmc(n, m):
    return abs(n * m) // mdc(n, m)
    
print(mmc(221, 136))

ARITMÉTICA MODULAR

7. Tabela Z_n para adição modular e 8. Tabela Z_n para multiplicação modular

python

def tabela_modular(n, operacao):
    tabela = [[0] * n for _ in range(n)]
    for i in range(n):
        for j in range(n):
            if operacao == '+':
                tabela[i][j] = (i + j) % n
            elif operacao == '*':
                tabela[i][j] = (i * j) % n
            else:
                raise ValueError("Operação inválida. Use '+' para adição ou '*' para multiplicação.")
    return tabela

def print_tabela(tabela):
    for linha in tabela:
        print(" ".join(map(str, linha)))

n = 4

print("Tabela Z_{} para Adição Modular:".format(n))
tabela_adicao = tabela_modular(n, '+')
print_tabela(tabela_adicao)

print("\nTabela Z_{} para Multiplicação Modular:".format(n))
tabela_multiplicacao = tabela_modular(n, '*')
print_tabela(tabela_multiplicacao)