Atividade 8: Sequência de Collatz

Esta atividade apresenta a sequência de Collatz, que está por trás de uma questão matemática que permanece sem solução desde a sua proposição há 80 anos! A proposta é criar um algoritmo que escreva a sequência dado o primeiro termo.

Arquivos

  • Atividade 8 do livro.

Habilidades da BNCC

  • EM13MAT315: Investigar e registrar, por meio de um fluxograma, quando possível, um algoritmo que resolve um problema.
  • EM13MAT315: Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos escritos em linguagem corrente e/ou matemática.

Objetivos específicos

  • Compreender como sistematizar soluções algorítmicas usando fluxogramas ou linguagens de programação.
  • Compreender os conceitos básicos de uma linguagem de programação: repetição.

Soluções em linguaguem de programação

  • Solução em Portugol;
  • Solução em Python;
  • Solução em Python usando lista, um conceito que não é explorado neste material, mas é muito útil em questões como as que utilizamos;
  • Versão em Python do algoritmo mostrado no Organizando seguinte a esta atividade;

Atividades adicionais

  • Este arquivo traz uma atividade sobre sequências numéricas que pede aos estudantes que construam algoritmos (na verdade, um único algoritmo que pode ser facilmente ajustado para as 4 sequências) que escrevam sequências aritméticas como PAs, PGs e similares e depois discutam suas propriedades e significados.
  • É possível estender essa atividade para discutir o uso de comandos de repetição encadeados. A questão que pode ser usada para isso é: crie um algoritmo que escreva a sequência de Collatz que se iniciam com todos os números inteiros de um intervalo dado. Por trás dessa pergunta pode-se colocar o desafio: quem encontra a sequência de collatz mais longa? Vale salientar que o método que testa as sequências uma a uma não é o mais eficiente, pois algumas sequências caem em subsequências que já foram contadas e, portanto, poderiam ser reaproveitadas. Porém, isso demandaria o uso de vetores (arrays em linguagens comerciais) ou lsitas (como mostrado no link acima em Python) e esses conceitos não são abordados neste material.