Oi Edson, tudo bem?
A primeira coisa que precisamos de fazer é definir uma função que irá nos retornar quais são as potências(de x1 e x2) daquele grau. Exemplo:
Se o grau é 3 terá que nos retornar que as potências são:
Podemos então calcular estes números através de um aninhamento de for, que irá percorrer de 1 até o número e verificar se a soma dará um valor igual ao grau e caso isto seja bem sucedido irá adicionar uma tupla daquele valor na lista. Por exemplo:
def calcula_expoentes_do_grau(numero):
expoentes = []
for i in range(1,numero):
for j in range(1,numero):
if i + j == numero:
expoentes.append((i,j))
expoentes.append((numero, numero))
return expoentes
Se fizermos o teste:
print(calcula_expoentes_do_grau(3))
O resultado será: [(1, 2), (2, 1), (3, 3)]
. Ou seja, uma lista de tuplas com os valores dos expoentes que estão dentro da condição de que a soma dos expoentes de x1 e x2 devem ser iguais ao grau.
Posterior a isso, podemos chamar a função calcula_expoentes_do_grau de 1 até 6, ou seja, até a sexta potência para os valores de x1 e x2. Algo como:
for i in range(1, 7):
resultado_expoentes = calcula_expoentes_do_grau(i)
for x, y in resultado_expoentes:
if x and y == i: # Para casos onde há tuplas com (3,3), (2,2), (1,1)
matriz.append([x1 ** i])
matriz.append([x2 ** i])
qtd_linhas_matriz += 2
else:
primeira_operacao = x1 ** x
segunda_operacao = x2 ** y
matriz.append([primeira_operacao * segunda_operacao])
qtd_linhas_matriz += 1
Lembrando que matriz em Python nada mais é que uma lista de listas.
Código completo:
def calcula_expoentes_do_grau(numero):
expoentes = []
for i in range(1, numero):
for j in range(1, numero):
if i + j == numero:
expoentes.append((i, j))
expoentes.append((numero, numero))
return expoentes
x1 = int(input('Digite X1: '))
x2 = int(input('Digite X2: '))
qtd_linhas_matriz = 0
matriz = []
matriz.append([1])
for i in range(1, 7):
resultado_expoentes = calcula_expoentes_do_grau(i)
for x, y in resultado_expoentes:
if x and y == i:
matriz.append([x1 ** i])
matriz.append([x2 ** i])
qtd_linhas_matriz += 2
else:
primeira_operacao = x1 ** x
segunda_operacao = x2 ** y
matriz.append([primeira_operacao * segunda_operacao])
qtd_linhas_matriz += 1
print('MATRIZ COM OS VALORES')
qtd_colunas_matriz = 1
for i in range(qtd_linhas_matriz + 1):
print(matriz[i])
Caso simplifique a visualização, poderá printar no for as potências detalhadamente:
for i in range(1, 7):
print(f'Potência de {i}')
resultado_expoentes = calcula_expoentes_do_grau(i)
for x, y in resultado_expoentes:
if x and y == i:
print(f'{x1}^{i} = {x1 ** i}')
print(f'{x2}^{i} = {x2 ** i}')
matriz.append([x1 ** i])
matriz.append([x2 ** i])
qtd_linhas_matriz += 2
else:
primeira_operacao = x1 ** x
segunda_operacao = x2 ** y
matriz.append([primeira_operacao * segunda_operacao])
print(f'{x1}^{x} * {x2}^{y} = {primeira_operacao * segunda_operacao}')
qtd_linhas_matriz += 1
Qualquer dúvida é só falar. Espero ter ajudado. Abraços e bons estudos!