Como desenhar a sequência de Fibonacci no VBA

Um meme viralizou, representando o golaço do jogador Richarlison com uma sequência de Fibonacci ao fundo.

Esta é uma sequência descoberta pelo matemático Leonardo de Pisa, mais conhecido como Fibonacci.
Comece com 1, 1, e o próximo termo é a soma dos dois anteriores:
1, 1, 2, 3, 5, 8, 13, 21, 34, …

É possível visualizar essa bela sequência na forma retangular, aproveitando o fato de que o próximo termo será igual ao lado dos dois anteriores:

Além disso, é possível colocar um arco de círculo de 90 graus em cada quadrado, explicitando uma espiral.

Como a sequência acima é formada apenas de retângulos e arcos, é possível escrever uma macro VBA, seguindo a espiral, de forma a fazer o desenho acima.

Essencialmente, são só comandos de shape, e mais um monte de cálculos para posicioná-los corretamente:

ActiveSheet.Shapes.AddShape(msoShapeRectangle, x, y, width, height) ‘Retangulo
ActiveSheet.Shapes.AddShape(msoShapeArc, x, y, width, height) ‘Arco

Ela é meio chatinha de entender, mas para quem quiser se aventurar, o código VBA está aberto, no arquivo para download a seguir.

https://1drv.ms/x/s!Aumr1P3FaK7joFRGUClrkajeCuQW?e=dylWYI

A espiral cresce na “Proporção Áurea”, que segundo os gregos antigos, se traduz na proporção perfeita da natureza. E o golaço mostra que os antigos gregos eram muito sábios!

Veja também:

Recomendação: o Almanaque de Naval Ravikant.

Uma recomendação de leitura para esta Black Friday é o Almanaque de Naval Ravikant.

Ele é empreendedor e investidor no Vale do Silício. Este livro é uma série de tweets e entrevistas, compiladas por um seguidor.

Naval tem uma habilidade imensa para condensar conceitos em poucas palavras e gerar pérolas de pensamento. Seguem algumas abaixo:

==========

Se você ainda não sabe no que deveria trabalhar, o mais importante é descobrir. Você não deveria fazer um monte de trabalho duro se não souber.

Doutores não o farão saudável. Nutricionistas não o farão magro. Professores não o farão esperto. Gurus não o farão calmos. Mentores não o farão rico. Treinadores não o farão em forma. No final das contas, a responsabilidade é sua.

A educação gratuita é abundante, por toda a Internet. É o desejo de aprender que é escasso.

==========

Não é realmente sobre trabalho duro. Você pode trabalhar num restaurante 80 horas por semana, e não ficará rico. Ficar rico é sobre saber o que fazer, com quem fazer junto, e quando. É mais sobre entender do que trabalho pesado.

Fuja da competição através da autenticidade. Quando você está competindo com outros, é porque você os está copiando. Porém, todo ser humano é diferente. Não copie. Ninguém é melhor em ser você do que você mesmo.

O pior resultado desse mundo é não ter autoestima. Se você não se ama, quem irá fazê-lo?

==========
Seja impaciente com ações, paciente com resultados.

O maior superpoder é a habilidade de mudar a si mesmo.

Tubarões comem bem, porém levam uma vida cercados de tubarões.

==========

Conhecer um pouco da sabedoria de Naval é algo que recomendo para todo mundo.

“Não se leve tão a sério. Você é apenas um macaco com um plano” – Naval Ravikant

Essa pessoa não existe

Muito impressionante o site https://thispersondoesnotexist.com.

Toda vez que o site é recarregado, uma nova imagem sintética de uma pessoa é gerada.

O método utilizado é o de Redes Neurais Adversárias (GAN), e o próprio site indica o link https://www.youtube.com/watch?v=u8qPvzk0AfY para saber mais.

Assustador, não?

Como converter de Milhas para Km de forma fácil? E de Fahrenheit para Celsius?

Esse pensamento ocorreu quando eu estava na Califórnia, dirigindo um carro alugado, e vi uma placa escrita “40”. Esta indicava a velocidade máxima permitida de 40 milhas por hora. Como a gente não tem noção de quanto isso significa, sempre tentamos converter para a unidade que conhecemos, km/h.

Ora, a forma mais precisa de fazer a conversão é multiplicar o valor em milhas por 1,609 e obter o valor em Km. Só que não tem como fazer essa conta dirigindo um carro, de forma que é muito melhor obter um valor aproximado.

A forma mais fácil que pensei foi a de arredondar a conversão para 1,5.

Pegue as 40 milhas por hora, some metade do valor (20):
40 + 20 = 60 km/h

Um pouquinho mais complicado, arredondar para 1,6:

1,6 = 1 + 0,5 + 0,1

Pegue as 40 milhas por hora, some metade do valor (20) e depois some um décimo do valor (4).

40 + 20 + 4 = 64 km/h

É uma aproximação razoável, já que o valor exato é 64,37376. Para fins práticos, funciona muito bem.

De Fahrenheit para Celsius

Outra conversão que nunca consegui decorar foi de Fahrenheit para graus Celsius.

A fórmula correta tem números demais, é difícil de decorar e fazer a conta de cabeça.

Tc = (Tf – 32)* 5 /9

Fórmula muito mais fácil de fazer de cabeça:

Tc = (Tf – 30)/2

Exemplo. Converter 70 F:

Tc = (70-30)/2 = 20

Valor real: 21,11

É um valor aproximado, porém, muito próximo, e, para efeitos práticos, bom o suficiente.

Portanto, uma dica é pensar de forma aproximada o suficiente, a fim de diminuir a carga mental do dia-a-dia.

Utilizando o Excel:

No Excel, é possível utilizar a função “=CONVERTER”.

De Milha para Kilômetro:

=CONVERTER(40;”mi”;”km”)

De Fahrenheit para graus Celsius
=CONVERTER(50;”F”;”C”)

Em geral, a função “=CONVERTER” tem um banco com diversas unidades para conversão.

Veja também:

Lab. Matemática (ideiasesquecidas.com)

O Gandhi nuclear

Mahatma Gandhi, o líder indiano conhecido mundialmente pela filosofia da não-violência, torna-se um crápula sanguinário, detonador de bombas atômicas, no jogo Civilization. Seria isso um erro de código?

O jogo “Civilization” tem o objetivo de evoluir civilizações. Infelizmente, nunca joguei o mesmo para comprovar ou não a veracidade, mas diz a lenda que o líder indiano Gandhi começa pacífico nas primeiras fases, e depois que a Índia desenvolve bombas atômicas, ele se torna agressivo a ponto de usar e abusar das mesmas!

Uma explicação possível envolve um erro de código: um overflow.

A agressividade dos líderes seria um número de 1 a 10, e Gandhi começa com o menor número possível, 1. A variável com a agressividade é armazenada num tipo inteiro sem sinal, com um byte (8 bits).

Um inteiro sem sinal com 8 bits armazena inteiros de 0 a 255 (equivale a 2^8 − 1).

Quando as civilizações atingem a era democrática, todos os jogadores têm decréscimo de dois pontos na agressividade. Opa. Se Gandhi começa com 1, ele ficaria com -1 no final. Só que, na aritmética computacional, ocorre um overflow (ou melhor, um underflow), e o -1 equivale ao valor 255.

Ou seja, o pacífico Gandhi se tornaria 25 vezes mais terrível do que o mais terrível dos outros líderes!

Tal caso é ensinado em escolas de computação, como exemplo de overflow.

O que dizem os criadores?

Há várias investigações sobre o tema. Em resumo, eles negam que a lenda acima seja verdade. Gandhi teria um comportamento tão igual quanto o esperado. Talvez pela Índia ter mais chance de desenvolver bombas atômicas, pode ser que pareça que Gandhi tenha esse comportamento.

De qualquer forma, é uma situação tão inusitada que os criadores incorporaram de propósito esse comportamento bizarro a Gandhi, a partir de Civilization V, como uma piada e um easter egg.

Recomendo os links abaixo para maiores detalhes técnicos.

Sei que esse episódio gerou uma série de memes engraçados.

Algumas fontes:

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

Livro Humble Pi – Matt Parker

O equilíbrio de Nash do filme “Uma mente brilhante” não é um equilíbrio de Nash

O filme “Uma mente brilhante”, com Russell Crowe e Jennifer Connely, é baseado na vida do matemático americano John Nash, famoso pela sua contribuição na muito interessante Teoria dos Jogos.

No filme, o grande insight de Nash ocorre na cena do bar. Nash e quatro colegas da faculdade estão bebendo. Uma loira atraente chega, acompanhada de algumas amigas não tão atraentes.

Vide vídeo no Youtube:

A primeira reação do grupo é citar Adam Smith: “Na competição, a ambição individual serve ao bem comum”. “Cada um por si”, diz um dos amigos, implicando que todos tentarão a sorte com a loira.

A conclusão de Nash é diametralmente oposta. Se todos chegarem todos primeiro na loira, levarão um fora, e as outras amigas se sentirão menosprezadas também darão um fora em todos.

A solução seria uma espécie de colaboração. Ninguém tem como alvo primário a loira. Cada um dos amigos chega em uma das amigas menos atraentes, porém, isso vai aumentar a chance de todos se darem bem no final.

No final, o matemático sai para rascunhar suas ideias, e agradece à loira, que não entende nada.

É um filme, então entendo que tenha que ter uma teoria compreensível e digna de um insigth. Porém, para um nerd que gosta extremamente de matemática como eu, sinto dizer que o filme está errado. O equilíbrio de Nash ali demonstrado não é um equilíbrio de Nash de verdade, como o filme implica mostrar.


Eis o porquê:

Um jogo ocorre quando há pelo menos dois jogadores, e as decisões de ambos influem no resultado final.

O “Equilíbrio de Nash”, como o nome sugere, é um ponto de equilíbrio em que o jogo converge: quando este ponto é atingido, nenhum dos jogadores sai ganhando se mudar a sua decisão. Ou seja, nenhum deles sai ganhando se escolher “trair” a configuração de equilíbrio.

A situação do filme não configura um equilíbrio de Nash. Imagine que os 4 amigos decidam pela estratégia de ignorar a loira e abordar as 4 moças não tão atraentes. Só que 3 deles executem o combinado, e 1 deles “traia” o restante: ele vai sozinho para cima da loira. O “traidor” aumenta a probabilidade de se dar melhor, ao se livrar dos outros que seguiram o combinado.

Como existe incentivo para esse tipo de “traição”, a situação apresentada não é um equilíbrio de Nash.

A conclusão é que Hollywood não é um bom professor de matemática…

Veja também:

Recomendações de livros – Black Friday

Seguem algumas recomendações de livros que “garimpei” na promoção de Black Friday da Amazon. Aproveite, são só 48h com esses preços.

Ordem Mundial em Transformação – Ray Dalio

Sou grande fã de Ray Dalio, e estava monitorando o novo livro dele faz meses. Já tinha a versão audiobook (via Audible), mas nada melhor que a versão física em papel.

Preço promocional R$ 78,90. Pré Black-Friday mais barato era em torno de cento e pouco reais – sei disso porque quase comprei anteriormente.

Link da Amazon: https://amzn.to/3tHr6Aa

A arte de ter razão: 38 estratagemas

“Um pequeno manual de patifaria”, palavras do próprio autor, o filósofo alemão Arthur Schopenhauer. Gosto muito deste livro, e só não compro porque já tenho.

Apenas R$ 7,49

https://amzn.to/3hVwm0n

Cisne Negro – Nassim Taleb

Sendo muito fã de Taleb, também é uma recomendação de livro que gosto demais.

Preço promocional R$ 52,86
https://amzn.to/3UJruKq

Sapiens – Yuval Harari

Um dos autores mais impressionantes da atualidade, esse livro é um tour de force explicando nossas origens e ideias que nos caracterizam até hoje.


Preço promocional R$ 45,89
https://amzn.to/3GodpOg

Os mistérios matemáticos do Professor Stewart

Para fechar, um livro do divulgador da matemática Ian Stewart, cheio de mistérios e curiosidades desta bela ciência.

Preço promocional R$ 41,98

https://amzn.to/3gaLUgA

Caminho com retângulos

Mais uma forma de fazer arte com retângulos.

É bem simples plotar um retângulo no Excel (ou em outra linguagem de programação) – e mudar propriedades como coordenadas, tamanho, cor e borda.

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 30, 50, 30).Select

Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 200)

Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)

Este vai traçar um retângulo nas coordenadas (x,y) = (50,30), com largura 50 e altura 30. Cor azul escuro e contorno preto.

Uma sucessão de retângulos vai formar um caminho.

Podemos variar o centro do caminho, de modo a ficar assimétrico.

Ou podemos fazer este caminho seguir uma senoide.

O limite é a imaginação.

Baixe o arquivo Excel em:

https://github.com/asgunzi/Caminho-Seno

Vide também:

Cuidados com Excel como banco de dados

Cuidados ao usar o Excel como banco de dados.

Ferramentas em Excel-Vba

O Excel não foi feito para ser um banco de dados completo. Seguem alguns cuidados.


Notação decimal

Se escrevermos =1E3 numa célula do Excel, ele vai entender que é notação decimal (10 elevado à 3), e vai transformar o conteúdo em 1000 (teste em qualquer planilha).

Porém, e se o conteúdo que quisermos armazenar for realmente a string “1E3”? Teremos que mudar o formato da célula, de geral para texto, o que é possível, porém, requer atenção.

O mesmo é válido para qualquer número nesse formato.

Datas

Se escrevermos 1/mar numa célula qualquer, o Excel vai entender que é uma data, 01/março.

E se quisermos armazenar a string “1/mar”, por algum motivo? O Excel vai entender errado, novamente.

Números grandes

Da mesma forma, um número grande vai ser descrito em notação científica – vamos perder precisão, se o objetivo for armazenar exatamente todos os dígitos.

Muitos dos erros são devido…

Ver o post original 284 mais palavras

Design perturbador: zíper de catchup

Mais uma da série “designs horríveis”. Acredito que a maioria das pessoas já se deparou com um zíper de embalagens de alimentos tão ruim, mas tão ruim, que era impossível abrir a embalagem!

No exemplo acima, o “rasgue aqui” de nada servia, porque não havia o rasgo inicial para facilitar a abertura. E aí, você puxa, tenta rasgar, sem sucesso. Vira do outro lado, tenta de novo, e nada. Procura alguma faca para fazer o rasgo – e nota que só tem uma faca de plástico descartável, que não corta nada. Afinal, apela para abrir com os dentes…

Extremamente mal projetado – ou mal executado, não interessa. Para o consumidor final, o efeito é ter uma experiência ruim.

O pior é que não é só com catchup, tem inúmeros produtos com zíperes que não funcionam.

Veja também:

Recomendação: O fantástico mundo da Filosofia

Um passeio pela história da Filosofia, com o filósofo pré-socrático Heráclito como guia, e em quadrinhos!

Os principais temas do pensamento, como Lógica, Livre-Arbítrio, Deus e Ética são discutidos. Ao longo da jornada, Heráclito vai se encontrando com outros grandes nomes, como Platão, Aristóteles, David Hume, John Locke, Stuart Mill, Friedrich Nietzsche e tantos outros. Tudo isso, de um jeito leve e com muito humor.

A Filosofia é bela. Trabalha com ideias, que podem ou não afetar as nossas vidas, direta ou indiretamente. A filosofia é precursora da ciência – tudo o que chamamos hoje de química, física ou matemática, antes de tudo, foram ideias e especulações sonhadas por filósofos.

Temos ainda um tanto de questões abertas, e que possivelmente nunca serão respondidas.

“Cogito, ergo sum” – René Descartes.

Comprei a versão física, em promoção de Black Friday.

Link da Amazon: https://amzn.to/3EreeEp

Uma pedra lançada ao ar

Uma bela reflexão.

“Para uma pedra lançada ao ar, não há nada de ruim em descer, assim como subir também não foi bom” – citação das Meditações, de Marcus Aurelius.

Para a filosofia estoica, coisas como riqueza e patrimônio são indiferentes – não é ruim ter, mas também não é ruim não ter. Não é o mais importante, por assim dizer.

Trilha sonora: Vinte e nove – Legião Urbana.