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 (começando do valor inicial 2).

[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]

Aliás, um bom exercício de programação é criar uma “calculadora de Collatz”. Dado um número, listar o número de passos para chegar a 1. Vide:

https://asgunzi.neocities.org/Experimentos/CalcCollatz

O algoritmo descrito sempre vai convergir, para qualquer número inicial?

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 evidente, mas não garante a prova da conjectura.

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?

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

The Simple Math Problem We Still Can’t Solve

This column comes with a warning: Do not try to solve this math problem. You will be tempted. This problem is simply…

www.quantamagazine.org

Lab. Matemática: Lab. Matemática (ideiasesquecidas.com)

Deixe um comentário

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

Logo 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