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

Ver o post original 56 mais palavras

Como utilizar imagens nos marcadores de gráfico no Excel

No gráfico do Excel, selecionar o marcador que você quer colocar a imagem. Ir em opções de marcador, e tem uma opção lá que é imagem. Depois de selecionada, vai pedir para carregar uma imagem ou do computador, ou do banco de imagens da Microsoft.

Alguns exemplos:

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…

Ver o post original 168 mais palavras

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…

Ver o post original 257 mais palavras

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:

Ver o post original

Cuidados com Excel como banco de dados

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 ao tipo de conteúdo – número (int, float), datas, strings,  etc.

Num banco de dados como o Access, temos que declarar o tipo da coluna em separado ao conteúdo, o que ajuda (mas não resolve totalmente) nesse tipo de problema.

Limite de linhas e colunas

Outro erro comum. O Excel antigo (até 2003) tinha 65 mil linhas – o que era suficiente na época, mas muito pouco hoje.

O Excel atual tem máximo 1 milhão de linhas e 16 mil colunas – e isso não é suficiente para um banco grande.

Um erro possível é truncar linhas de um banco de dados, e trabalharmos com menos informação que existe de verdade.

Caso: banco de genomas

Pode parecer improvável, mas é possível errar muito sem essas noções.

Estudo: 20% dos papers de genômica tinham algum erro de Excel.

Bases de genoma têm siglas esquisitas, como SEPT2 – que facilmente pode virar 2 de Setembro!

Report Finds Microsoft Excel Causes Errors in 20 Percent of Genomics Studies | Mental Floss

Erros de arredondamento

Quanto é 0,5 – 0,4 – 0,1?

Claramente, é igual a zero.

Coloque =0,5 – 0,4 – 0,1 no Excel, e vai dar zero.

Porém, uma pequena modificação (multiplicar por 1) e vai dar -2.77E-17

=(0,5 – 0,4 – 0,1)*1

Ou seja, -2,77 elevado a -17. Um número pequeno, mas não zero.

Isso ocorre devido à erro de arredondamento, na representação do número em binário.

Aliás, esse não é um privilégio do Excel. Em Python e outras linguagens também acontece.

Ou seja, cuidado ao utilizar o Excel como banco de dados.

(Inspirado em trechos do livro Humble Pi, sobre erros matemáticos em geral)

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


Visualização da semana

Veja também:

https://ideiasesquecidas.com/

Experimentos no DALL-E

O DALL-E é uma inteligência artificial que faz desenhos a partir de imagens (não confundir com o Mini-DallE, que é um clone mais pobre).

A empresa responsável pelo Dall-E, a OpenAI, liberou um trial de 50 imagens grátis no primeiro mês (e 15 por mês subsequente).

Qualquer um pode se cadastrar em: https://openai.com/dall-e-2/

Seguem alguns experimentos.

“Ornitorrinco (platypus) desenhado num estilho Kandinski”.

“Nietzsche com águia à direita e serpente à esquerda com background do sol se pondo” (essa é uma descrição de um capítulo do livro Assim falou Zaratustra, de Friedrich Nietzsche, um dos mais impactantes pensadores de todos os tempos).

“Balanço corpo e mente” – inclusive já usei uma figura gerada assim para post anterior.

“Tartaruga de Esopo vencendo corrida contra lebre”. Note que não ficou muito bom. O Dall-E não entende contos. O ideal é descrever detalhamente o que queremos que seja desenhado.

“Inferno com background tech” –…

Ver o post original 80 mais palavras

Números aleatórios e gerador de Bingo

Post do blog Ideias Esquecidas.

Funções de números aleatórios no Excel

Números aleatórios podem ser úteis para Análises estatísticas como Monte Carlo, e também é possível fazer algumas brincadeiras.

A fórmula “Aleatório()” do Excel fornece um número real aleatório entre 0 e 1:

Clicando F9 ou a qualquer mudança na planilha, este valor é recalculado.

Outra função útil é “=ALEATÓRIOENTRE(min;max)”: vai gerar um número aleatório inteiro entre o valor mínimo e o máximo.


Gerador de cartelas de Bingo

Vamos criar um gerador de cartelas de Bingo com números aleatórios.

Não podemos simplesmente jogar “=aleatórioentre(1, 15)”, porque provavelmente vai dar algum número repetido.

Então, temos que ser um pouquinho mais sofisticados.

Imagine que tenho que escolher 5 números entre 1 e 15, para a coluna “B” do Bingo.

Na célula imediatamente à esquerda, sorteio um número aleatório qualquer.

Uma forma de sortear 5 números da lista seria ordenar a coluna aleatória em ordem decrescente e pegar…

Ver o post original 91 mais palavras

Easy AI e Explainable AI

Sobre modelos simples e Explainable AI.

“Não há benefício em ter modelos complicados”

Baseado em palestra de Cynthia Rudin, Duke University, na Informs 2022.

A Inteligência Artificial (IA) tradicional é uma caixa-preta: entramos com dados (digamos, um milhão de fotos diversas) e com os outputs desejados (quais das fotos são rotuladas como gatinhos ou não), e o circuito interno é uma caixa-preta a ser treinada (uma rede neural de dezenas de camadas e milhares de neurônios por camada). O grande poder da IA dos últimos 10 anos derivou de conseguirmos melhorar essa caixa-preta cada vez mais.

Uma grande desvantagem desse tipo de método é como a rede neural vai se comportar com input totalmente desconhecido? Com algum caso nunca antes visto? Pode ser que ela classifique corretamente, pode ser que dê um resultado totalmente esdrúxulo.

Exemplos abundam, de como “enganar” uma IA.

Em métodos tradicionais de modelagem, entramos com inputs, as regras de decisão, e saímos…

Ver o post original 450 mais palavras

Tenha o seu próprio dinossauro em 3D no Excel!

Inserir -> Modelos 3D -> Modelos 3D em estoque.

É possível escolher modelos diversos, e importar. Por exemplo, um dinossauro.

Com o modelo na planilha, é possível girar, redimensionar, etc.

Enquanto um dinossauro 3D não tem muita utilidade, talvez um modelo 3D de um caminhão, ou vagão de trem, ou de uma peça, sejam mais próximos da nossa realidade. A mensagem é que possível incorporar modelos assim em planilhas.

Experimente mexer no modelo 3D. Vide aqui:

https://1drv.ms/x/s!Aumr1P3FaK7joE_L67obLFwvSEUO?e=0dk8KA

Veja também:

https://ideiasesquecidas.com/