Conjectura de Collatz — visualizações utilizando Python

A Conjectura de Collatz é o problema não resolvido de matemática mais simples da história.

Pegue um número qualquer n.

  • Se n for par, divida por 2
  • Se n for ímpar, calcule 3*n+1

E continue fazendo essa conta.

A conjectura diz que a sequência sempre vai convergir para 1.

Exemplo: número inicial 5

5 -> 16 -> 8 -> 4 -> 2 -> 1

Foram 5 passos para convergir para 1.

Exemplo: número inicial 6

6 -> 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

Foram 8 passos para convergir para 1.

Criando uma função em Python (vide código em https://github.com/asgunzi/Collatz-Pytho) para retornar o número de passos, esses são os primeiros 100 valores.

[1, 7, 2, 5, 8, 16, 3, 19, 6, 14, 9, 9, 17, 17, 4, 12, 20, 20, 7, 7, 15, 15, 10, 23, 10, 111, 18, 18, 18, 106, 5, 26, 13, 13, 21, 21, 21, 34, 8, 109, 8, 29, 16, 16, 16, 104, 11, 24]

Informações interessantes: apesar de extremamente simples de ser formulada, essa conjectura até hoje não foi provada.

É contra intuitivo; parece que vai crescer, mas aí converge.

A sequência é errática: um número pode precisar de 100 passos, o vizinho precisa de 5.

Plotando os primeiros 10 mil números de Collatz:

A mesma visão, mas com 1 milhão de números:

O mesmo gráfico, com 10 milhões. Note que o jeitão do mesmo não muda.

Visualmente, parece haver um padrão irritantemente evidente, porém difícil de estabelecer de forma precisa (vide link ao final deste artigo).

Uma visualização alternativa, em coordenadas polares. No caso, mapeei um ciclo de 1000 números em 2*pi radianos, sendo o raio o número de collatz correspondente.

Polar para 10k números:

Polar para 50k números.

É possível brincar muito mais com diferentes visualizações. Sugestões?

Ideias Analíticas Avançadas
Um mundo melhor através do Analytics

Veja também:

Código no Github: https://github.com/asgunzi/Collatz-Python

Versão em VBA no Github: https://github.com/asgunzi/CollatzVBA

https://en.wikipedia.org/wiki/Collatz_conjecture

https://www.quantamagazine.org/why-mathematicians-still-cant-solve-the-collatz-conjecture-20200922/

Um comentário em “Conjectura de Collatz — visualizações utilizando Python

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s