Mátematica aplicada a programação

Um bom exemplo, é quando temos um jogador e um ponto no mapa, e dizer a distância entre eles, você pode utilizar o teorema de pitágoras, no teorema não usamos posições, mas sim catetos, para obter os catetos basta pegar a posição X e Y deste ponto e subtrair pela posição X e Y respectivamente do jogador, depois fazer o teorema:

local function Pythag(a, b)
    return math.sqrt((a^2) + (b^2))
end

local distancia = Pythag(PontoX - PlayerX, PontoY - PlayerY)

Fiz um video onde explicar melhor: https://www.youtube.com/shorts/Df5ve2Zg4Bs

Este é um exmeplo extremamente simples de como a mátematica pode ser aplicada, tem casos bem mais complexos onde pode haver até mesmo algebra linear como em renders 3d.

Já disse em outros posts, mas não custa repetir: mesmo que vc ache que não, usamos matemática praticamente o tempo todo pra programar.

O problema é que quando dizemos "matemática", muita gente associa com aquilo que vemos na escola: decorar fórmulas e sair fazendo contas - infelizmente, muitas vezes sem entender pra que serve. Na minha opinião é essa forma equivocada de ensino que fez com que gerações inteiras odiassem matemática, e achem até hoje que é inútil.

Se for esse o caso, então realmente vc não vai usar o que só viu - e decorou - na escola. Mas matemática é algo que vai muito além. Entre outras coisas, ela é uma ferramenta para resolver problemas através da criação de abstrações, e no fundo é isso que fazemos o tempo todo ao programar.

Para criar um programa qualquer, pegamos entidades do mundo real e tentamos encaixar nas estruturas e mecanismos que as linguagens nos dão (arrays, classes, funções, etc). Traduzimos algo concreto para uma representação abstrata, e a matemática te dá a capacidade de fazer isso. O problema é que esse ganho é indireto e geralmente demora para ser percebido (em parte, é um dos motivos de muita gente achar que não precisa, ou que "agora não estou usando").


Só pra dar um exemplo, em matemática existe o conceito de grafos (não é "gráficos" nem "garfos", é "grafos" mesmo). Basicamente, são nós interligados por vértices (ou "bolinhas ligadas por setinhas"):

Exemplo de grafo

A teoria matemática estuda as propriedades destas estruturas, e se vc só ler e aprender sobre esta parte, vai achar que não serve para nada.

Mas e se cada bolinha for uma cidade, e cada seta for uma estrada que liga duas cidades? Vc pode usar as propriedades matemáticas do grafo para calcular a melhor rota de uma cidade a outra, seja em distância, custo (supondo que algumas têm pedágio), etc. A teoria matemática não diz nada sobre estradas, apenas sobre encontrar o caminho entre dois nós, mas ela pode ser aplicada a qualquer problema do mundo real que possa ser modelado como um grafo.

Aliás, eu tive que fazer isso uma vez. Tinha um arquivo gigante de dependências, em um formato arbitrário e não padronizado (foi bem antes de inventarem o package.json). E dava problema porque alguém colocou dependências circulares nele. Então eu joguei o arquivo em um grafo, e procurei por ciclos (que também é um algoritmo conhecido de grafos). Claro que usei uma lib pronta, mas se eu não soubesse nem o que são grafos (e se não percebesse que aquele problema no fundo tinha tudo a ver com grafos), não saberia nem por onde começar.

Outro ponto é que, mesmo que vc não vá usar ou implementar diretamente algum conceito matemático, conhecê-lo ajuda a entender melhor como as coisas funcionam. Por exemplo, um repositório do Git no fundo é um grafo, e depois que eu compreendi isso passei a entender melhor o que cada comando faz (pois no fundo todos eles consultam ou manipulam o grafo).

E várias outras coisas que parecem banais têm alguma base matemática por trás. Como já dito aqui:

Muitos dos conceitos que a gente usa no dia a dia vieram diretamente da matemática. Funções, por exemplo, seguem basicamente a mesma ideia: recebe dados, faz algo com eles (seguindo determinadas regras) e retorna um resultado. SQL veio diretamente da Álgebra Relacional. Programação funcional é basicamente uma implementação do Lambda Calculus ("Daí que vem o lambda que muitas linguagens tem?" - De certa forma, sim) - e por aí vai, muita coisa que a gente usa nada mais é que um conceito matemático adaptado para ser usado em programação.

Enfim, é isso. Vc (quase) sempre usa matemática, mas muitas vezes é indiretamente, e não da maneira que muitos imaginam.

Que massa! 100%, computação é matemática, com uma roupa diferente rs Abração, e sensacional o post!

Se formos olhar bem. Toda a programação é baseada em matemática. Algumas mais outras menos afinal desde sempre a computação veio de uma ala matemática e depois criou subalas de onde a matemática vai ser trabalhada.

Muito bom! No final das contas a programação (ou a matemática) são apenas meios e não o fim. Sempre queremos chegar em algum objetivo e usamos das ferramentas disponpiveis para alcançá-lo.

A programação e matemática nos servem como algumas dessas ferramentas disponíveis.