• Python
  • 10. Algoritmos
  • Série de frações

Série de frações#

Vamos fazer uma função que recebe 3 números (a, b e n) e devolve o resultado da soma:

\[1 + \frac{1}{a^b} + \frac{1}{a^{2b}} + \frac{1}{a^{3b}} + \dots + \frac{1}{a^{(n-1)b}}\]

Acessar exercício "Séries de frações"

O primeiro passo para resolver este exercício é identificar o padrão desta série matemática. Para facilitar a nossa percepção, podemos reescrever essa conta da seguinte forma:

\[\frac{1}{a^{0b}} + \frac{1}{a^{1b}} + \frac{1}{a^{2b}} + \frac{1}{a^{3b}} + \dots + \frac{1}{a^{(n-1)b}}\]

Exercise 1

Para resolver este exercício, quais padrões de utilização do while serão necessários?

Answer

Para a resolução do exercício será necessário utilizar os padrão de Contador e Somatório.

Se você ainda está com dificuldade para encontrar o padrão deste exercício, vamos tentar encontrar esse padrão juntos.

Vamos pensar em um cenário em que queremos calcular a série de frações para os valores 2, 3 e 4 representando respectivamente os valores para a, b e n.

O cálculo da série de frações ficaria da seguinte forma:

\[\frac{1}{2^{0\cdot3}} + \frac{1}{2^{1\cdot3}} + \frac{1}{2^{2\cdot3}} + \frac{1}{2^{3\cdot3}}\]

Para resolver está conta, começaríamos pelas frações, pois a operação de divisão tem maior precedência com relação a operação de soma.

Um exercício que podemos fazer é comparar as frações dois a dois para tentar identificar algum padrão.

Sempre que o valor for igual para as duas frações que estamos comparando, nós copiamos o valor, sempre que o valor for diferente nós reescrevemos com uma interrogação.

Comparando frações dois a dois.

Me parece que encontramos um padrão. Ao comparar as frações dois a dois, podemos perceber que os valores que se repetem são sempre: \(\frac{1}{2^{?\cdot3}}\).

Exercise 2

Somente um valor sofre mudança.

Identificando valores que sofrem mudança na série de frações.

Qual padrão de uso do operador while pode nos ajudar com os valores que sofrem mudanças na série de frações?

Ou seja, precisamos de algo que nos ajude a criar a sequência 0, 1, 2 ... n-1.

Answer

Com os contadores podemos simular sequências como 0, 1, 2 ... n-1.

Exercise 3

Podemos começar resolvendo esse exercício escrevendo a função calcula_serie que recebe como argumentos os valores a, b e n e imprime os valores de 0 a n - 1.

Ao resolver este exercício, os testes com o nome Imprime contagem devem passar com sucesso.

Exemplo: calcula_serie(a, b, 5)

Saída:

0
1
2
3
4

Exercise 4

Em seguida, precisamos encaixar a conta \(\frac{1}{a^{? \cdot b}}\) no código que já temos.

No código que você escreveu na etapa anterior, o que devemos colocar no lugar do ?:

Answer

O contador criado no exercício anterior simula exatamente o comportamento do valor representado pelo símbolo ?.

Exercise 5

Vamos modificar nossa função calcula_serie para imprimir o valor de cada \(\frac{1}{a^{? \cdot b}}\) calculado.

Ou seja, para n = 2 você deve calcular e imprimir o valor de \(\frac{1}{a^{0 \cdot b}}\) em uma linha e \(\frac{1}{a^{1 \cdot b}}\) na linha seguinte.

Ao resolver este exercício, os testes com o nome Imprime valores calculados devem passar com sucesso.

Exercise 6

Agora que já fazemos o cálculo de cada termo da série de frações.

O que falta para completarmos o exercício?

Answer

Agora só falta somar todos os valores e retornar o valor calculado.

Exercise 7

A função calcula_serie ainda não retorna nenhum valor. Para finalizar o exercício a função precisa retornar o valor calculado da série de frações.

Modifique a função removendo o print e faça ela retornar o resultado esperado.

Ao resolver este exercício, os testes com o nome Finalizando série de frações devem passar com sucesso.

Raiz quadrada por subtrações#

Vamos resolver juntos o exercício Raiz quadrada por subtrações 👉 Clique aqui.