Se o primeiro dominó cai e cada dominó derruba o seguinte, todos caem. Essa é a lógica do Princípio de Indução Matemática. Veremos a estrutura da prova (base, hipótese e passo) em somas, divisibilidade e desigualdades, e a falsa prova de que todos os cavalos têm a mesma cor.
União, interseção, diferença e complemento são as operações básicas entre conjuntos, e aparecem no SQL como UNION, INTERSECT e EXCEPT. Vemos cada uma em diagramas de Venn, as leis de De Morgan e a distributividade, e a diferença entre diagrama de Venn e de Euler.
A coleção das pessoas altas não é um conjunto: falta um critério que decida, para qualquer pessoa, se ela pertence ou não. Definimos conjunto, pertinência, descrição por extensão e por compreensão, igualdade, inclusão e o conjunto das partes.
De quantas maneiras se escolhe uma senha válida? Qual o caminho mais curto entre duas cidades? São perguntas de matemática discreta. Este roteiro apresenta as quatro séries do site sobre o tema: conjuntos, indução e recorrência, combinatória e grafos, com 28 artigos.
Como passar de uma tabela verdade para a expressão booleana mais enxuta? Mostramos três caminhos: as formas canônicas com mintermos e maxtermos, a simplificação algébrica e o mapa de Karnaugh, com exercícios resolvidos e conferência em Python com o SymPy.
Toda operação de um processador se descreve com três operações lógicas: AND, OR e NOT. Vamos das portas e tabelas verdade aos teoremas, às leis de De Morgan e à simplificação de expressões, com o meio-somador como primeiro circuito e exemplos em Python.
Por que somar 0.1 e 0.2 não dá 0.3? Porque 0.1 é uma dízima periódica em binário. Convertemos frações entre bases por multiplicações sucessivas, vemos os bits de um float com struct e duas saídas práticas: inteiros para dinheiro e math.isclose para comparar.
Em Python, 5 and 6 devolve 6, e 5 & 6 devolve 4. Explicamos a diferença e os operadores bit a bit AND, OR, XOR, NOT e os deslocamentos, usados em máscaras que consultam, ligam, desligam e alternam bits. No fim, vemos de onde vem o 755 do chmod.
As regras de soma e subtração da base 10 valem em qualquer base: muda só o valor que dispara o vai-um. Fazemos contas em binário, octal e hexadecimal, vemos por que com três parcelas o vai-um pode valer 2 e implementamos os dois algoritmos em Python.
Em qualquer base, o valor da própria base se escreve 10. Partimos da notação posicional para converter inteiros entre decimal, binário, octal e hexadecimal, com expansão, divisões sucessivas, agrupamento de bits e as funções bin, oct, hex e int do Python.
Em programação, a palavra “lógica” pode se referir ou ao processo de elaboração de um algoritmo, ou a estruturas condicionais da linguagem, ou a operadores lógicos como E e OU. Nos dois últimos casos, estamos dentro da chamada lógica matemática.
Os operadores and e or são operadores em curto-circuito, ou seja, o segundo operando só é avaliado se o resultado não puder ser determinado com base apenas no valor do primeiro operando. Confuso? Vamos ver alguns exemplos neste artigo.