O jogo da vida – de John Conway

O matemático John Conway faleceu na semana passada, vítima do Corona vírus.

https://guiadoestudante.abril.com.br/estudo/conheca-john-conway-o-matematico-que-criou-o-jogo-da-vida/

Ele foi o criador do “Jogo da Vida”, o primeiro exemplo de autômato celular. É bastante interessante e lúdico.

Em homenagem a Conway, é mais ou menos simples fazer uma versão em Excel.

Imagine um tabuleiro, com pontos aleatórios.

O jogo faz a seguinte análise:

  1. Qualquer célula viva com menos de dois vizinhos vivos morre de solidão.
  2. Qualquer célula viva com mais de três vizinhos vivos morre de superpopulação.
  3. Qualquer célula morta com exatamente três vizinhos vivos se torna uma célula viva.
  4. Qualquer célula viva com dois ou três vizinhos vivos continua no mesmo estado para a próxima geração.

Rodando várias iterações, começam a surgir alguns padrões.

O código gera uma matriz aleatória de 0 e 1. Cola na planilha.

Pinta de verde e branco, com formatação condicional.

A seguir, aplica as regras do jogo da vida.

Repita o procedimento acima diversas vezes.

Vamos analisar apenas um trecho do código, as regras do jogo da vida.

Existe uma variável chamada somaVizinhos que soma quantos vizinhos a célula tem.

A célula em referência é arrVal(i, j). Se ela for igual a 1, está viva, se 0, não.

‘Qualquer célula viva com menos de dois vizinhos vivos morre de solidão.

            If arrVal(i, j) = 1 And somaVizinhos < 2 Then

                arrValUpdate(i, j) = 0

            End If

            ‘Qualquer célula viva com mais de três vizinhos vivos morre de superpopulação.

            If arrVal(i, j) = 1 And somaVizinhos > 3 Then

                arrValUpdate(i, j) = 0

            End If

            ‘Qualquer célula morta com exatamente três vizinhos vivos se torna uma célula viva.

            If arrVal(i, j) = 0 And somaVizinhos = 3 Then

                arrValUpdate(i, j) = 1

            End If

            ‘Qualquer célula viva com dois ou três vizinhos vivos continua no mesmo estado para a próxima geração.

            If arrVal(i, j) = 1 And (somaVizinhos = 2 Or somaVizinhos = 3) Then

                arrValUpdate(i, j) = 1

            End If

Download no Github.

Lição de casa:  modificar a terceira regra para:

‘Qualquer célula morta com exatamente TRÊS OU QUATRO vizinhos vivos se torna uma célula viva’ e analisar os resultados.

Bom divertimento!

As linguagens do Analytics

No último fórum da Informs (a mais importante associação americana de Operations Research), em Chicago, citaram Pythons umas 6 vezes, Excel também umas 6 vezes, Java uma vez (de um fornecedor que disse que estava mudando para Python), R nenhuma mênção.

Isto mostra a força do Python como a língua franca do Analytics da atualidade.

O pessoal que citou Excel o fez metade das vezes para falar mal, outra metade para dizer que o usuário final utiliza. Isto mostra a resiliência do Excel, que apesar de todas as críticas, continua firme e forte nas grandes corporações – por seu poder e facilidade de uso. Há até uma piada que diz: “Todo o sistema financeiro mundial é baseado em Excel”.

Um último comentário: no final das contas, não interessa muito a linguagem, e sim ter uma base teórica forte e capacidade de execução. Linguagens e ferramentas vêm e vão. Até hoje tem gente utilizando Fortran muito bem, por exemplo.

https://ideiasesquecidas.com/