Executando verificação de segurança...
5

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.

Carregando publicação patrocinada...
28

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.

2
2

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.

1

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.