Conte as variáveis diferentes: a tabela-verdade tem 2ⁿ linhas, começando com todas elas iguais a 1.
Dê a cada subfórmula a sua própria coluna e preencha as colunas de dentro para fora.
Aplique a regra de cada conectivo: → só é 0 para 1 → 0, ↔ vale 1 quando os dois lados coincidem.
Para equivalências, compare as colunas finais linha a linha; para um argumento, olhe apenas as linhas em que todas as premissas valem 1.
Para negar uma afirmação quantificada, mova ¬ para dentro, troque ∀ e ∃ e negue a fórmula interna.
Lógica digital: portas, mapas de Karnaugh e flip-flops
Portas básicas
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Regras booleanas
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
De Morgan
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Ordem do mapa de Karnaugh
00, 01, 11, 10 (Gray code)
Grupo de 2ᵏ células
perde k variáveis
Multiplexador 4-para-1
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Flip-flops
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Contadores
n bits: 2ⁿ estados; mod-N: menor n com 2ⁿ ≥ N; fout = fclk/N
Contador assíncrono (ripple)
fmax = 1/(n·tpd)
Contadores em anel e Johnson
n e 2n estados
Método
Para um circuito, trabalhe das entradas até a saída, uma porta de cada vez, e escreva o valor em cada fio, ou escreva a sua expressão e preencha a tabela-verdade.
Para simplificar, coloque os 1s (e as condições irrelevantes como X) num mapa de Karnaugh com linhas e colunas em código Gray: 00, 01, 11, 10.
Cubra os 1s com o menor número possível de grupos, os maiores possíveis, de 1, 2, 4, 8 ou 16 células, dando a volta pelas bordas; cada grupo é um termo produto formado pelas variáveis que permanecem constantes. Agrupe os 0s para a forma POS.
Para flip-flops e contadores, leia as entradas em cada borda ativa do clock, escreva o estado após cada borda e lembre-se de que um contador de n bits dá a volta após 2ⁿ estados.
Teoria dos números e aritmética modular
Divisão com resto
a = q·n + r, 0 ≤ r < n
Euclides
gcd(a, b) = gcd(b, a mod b)
Mínimo múltiplo comum
lcm(a, b) = a·b/gcd(a, b)
Inversa
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Congruência linear
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Função totiente de Euler
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Fermat
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n
Método
Reduza antes todos os números módulo n; os restos ficam entre 0 e n − 1.
Para um mdc, divida repetidamente com o algoritmo de Euclides; o último resto não nulo é o mdc.
Para um inverso, execute o algoritmo estendido e guarde o coeficiente de a; some n se ele for negativo.
Resolva a·x ≡ b multiplicando por a⁻¹; combine duas congruências escrevendo x = r₁ + m₁k.
Para potências, escreva o expoente em binário e eleve ao quadrado repetidamente; no RSA, d = e⁻¹ mod φ(n) com φ(n) = (p − 1)(q − 1).
Teoria dos grafos
Lema do aperto de mãos
Σ deg(v) = 2|E|
Grafos completos
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Grafo regular
|E| = n·k/2
Árvore e floresta
|E| = n − 1, |E| = n − c
Folhas de uma árvore
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuito: todos os graus pares; caminho: exatamente 2 graus ímpares
Circuitos hamiltonianos em Kn
(n − 1)!/2
Atualização de Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Passeios de comprimento L
(Mᴸ)ij
Método
Anote o grau de cada vértice; a soma dos graus é igual ao dobro do número de arestas.
Em questões de Euler, verifique se o grafo é conexo e conte os vértices de grau ímpar.
Para árvores, use n − 1 arestas e o lema do aperto de mãos.
Em Dijkstra, mantenha uma tabela de distâncias provisórias e fixe a cada rodada o vértice não fixado de menor distância.
Para uma árvore geradora mínima, ordene as arestas por peso e pule toda aresta que feche um ciclo (Kruskal), ou faça crescer uma árvore a partir de um vértice inicial (Prim).
Sub-redes IPv4
Hosts por sub-rede
2(32 − prefix) − 2 (/31: 2, /32: 1)
Tamanho do bloco
256 − (mask octet)
Endereço de rede
IP AND máscara
Endereço de broadcast
IP OR (NOT máscara): todos os bits de host a 1
Sub-redes com n bits emprestados
2n
2Exercícios
1.Sistemas de numeraçãoMédia
Escreva −85 como padrão de 8 bits em complemento para dois. Leia o padrão como número binário sem sinal: qual é o seu valor U em decimal?
N = −858 bit
U =
2.Sistemas de numeraçãoDifícil
Defina os bits com o resultado de 8 bits de 0100 0100 >> 3. Qual é o valor R do resultado em decimal?
0100 0100>> 3
R =
3.Lógica proposicional e demonstraçõesMédia
Você quer demonstrar q → r por absurdo. Qual afirmação você supõe no início? Clique nela.
q → r
1¬q ∧ r
2¬q → ¬r
3¬q ∧ ¬r
4q ∧ ¬r
4.Lógica proposicional e demonstraçõesDifícil
Qual afirmação é equivalente a ¬∀x ∀y (R(x, y) → R(y, x)), com a negação movida totalmente para dentro? Clique nela.
¬∀x ∀y (R(x, y) → R(y, x))
1∀x ∀y (R(x, y) ∧ ¬R(y, x))
2∃x ∃y (R(x, y) → ¬R(y, x))
3∃x ∃y (¬R(x, y) ∧ ¬R(y, x))
4∃x ∃y (R(x, y) ∧ ¬R(y, x))
5.Lógica digital: portas, mapas de Karnaugh e flip-flopsMédia
Simplifique F = AC + AC′ + A′B′C′ até a sua forma mínima em soma de produtos. Quantos literais L a expressão simplificada contém?
F = AC + AC′ + A′B′C′
L =
6.Lógica digital: portas, mapas de Karnaugh e flip-flopsDifícil
Um flip-flop JK acionado na borda de subida começa com Q = 0 e recebe as entradas mostradas em 7 bordas de subida do clock. Quantas vezes N Q muda de estado?
Q₀ = 0JK
N =
7.Teoria dos números e aritmética modularMédia
Resolva 17x ≡ 41 (mod 44). Dê a solução x com 0 < x < 44.
17x ≡ 41 (mod 44)
x =
8.Teoria dos números e aritmética modularDifícil
Uma chave RSA usa p = 5, q = 41 e e = 13. Decifre o texto cifrado c = 94: encontre a mensagem m.
p = 5q = 41e = 13c = 94
m =
9.Algoritmos e complexidadeMédia
Um quicksort usa sempre o primeiro elemento como pivô. Com qual entrada ele apresenta o comportamento de pior caso?
AUm array com todos os elementos diferentes
BUm array em ordem aleatória
CUm array de tamanho 2
DUm array que já está ordenado
10.Algoritmos e complexidadeDifícil
Qual afirmação sobre selecionar o k-ésimo menor elemento de um array não ordenado está correta?
AO quickselect roda em O(log n) no pior caso, porque faz recursão em apenas um lado do pivô
BA seleção sempre exige Ω(n log n), porque requer ordenação
CA seleção só é possível em O(n²)
DO quickselect roda em O(n) esperado, e a mediana das medianas garante O(n) no pior caso
11.Estruturas de dadosMédia
Quanto tempo leva a busca de uma palavra de comprimento L em uma trie com alfabeto fixo?
AO(L), independentemente de quantas palavras estão armazenadas
BO(L × n)
CO(n), em que n é o número de palavras
DO(log n), em que n é o número de palavras
12.Estruturas de dadosDifícil
Qual propriedade mantém toda árvore B perfeitamente balanceada?
ATodo nó tem exatamente dois filhos
BCada nó armazena uma chave
CTodas as folhas estão na mesma profundidade
DAs chaves ficam armazenadas apenas na raiz
13.Teoria dos grafosMédia
O grafo conexo tem um circuito euleriano, um caminho euleriano que não é circuito, ou nenhum dos dois? Clique na sua resposta.
|V| = 6|E| = 7
1Circuito euleriano
2Caminho euleriano, sem circuito
3nenhuma das duas
14.Teoria dos grafosDifícil
Quantos passeios fechados de comprimento 2 começam e terminam em B? Um passeio pode repetir vértices e arestas. Chame o número de N.
M = matriz de adjacênciaL = 2
N =
15.Bases de dados e SQLMédia
Um LEFT JOIN retorna:
AApenas as linhas correspondentes das duas tabelas
BTodas as linhas da tabela da esquerda e as linhas correspondentes da direita, com NULLs onde não há correspondência
CApenas todas as linhas da tabela da direita
DAs linhas que não correspondem em nenhuma das tabelas
16.Bases de dados e SQLDifícil
x é NULL e y = 1. Qual é o valor da condição (x > 5 OR y = 1)?
ATRUE
BFALSE
CUNKNOWN
DNULL, então a linha é sempre rejeitada
17.Redes de computadoresMédia
O que caracteriza um ataque distribuído de negação de serviço (DDoS)?
AUm atacante adivinha a senha de um usuário
BUm vírus apaga arquivos em um único PC
CMuitas máquinas comprometidas inundam um alvo com tráfego
DUm atacante lê tráfego Wi-Fi não criptografado de um carro próximo
18.Redes de computadoresDifícil
Por que o TCP escolhe um número de sequência inicial imprevisível para cada conexão?
APara criptografar a carga útil de cada segmento
BPara selecionar a melhor rota até o destino para os segmentos dessa conexão
CPara comprimir os dados de forma mais eficiente
DPara evitar confusão com segmentos antigos e dificultar a injeção de segmentos falsificados
19.Sub-redes IPv4Média
A rede 192.168.203.0/24 é dividida em sub-redes /27, numeradas 1, 2, 3, … a partir do menor endereço (a sub-rede 1 começa em .0). Qual é o quarto octeto x do endereço de rede da sub-rede 3?
192.168.203.0/24/27sub-rede 3 (a sub-rede 1 começa em .0)
x =
20.Sub-redes IPv4Difícil
A rede 192.168.30.0/24 é dividida com VLSM para estas LANs: A: 9 hosts, B: 41 hosts, C: 3 hosts, D: 104 hosts. As sub-redes são alocadas a partir de .0 para cima, primeiro a LAN com mais hosts, cada uma com a menor sub-rede que a comporte. Qual é o quarto octeto x do endereço de rede da LAN B?
A: 9B: 41C: 3D: 104
x =
3Soluções
1.Sistemas de numeração
Resposta: U = 171
Sistemas de numeração posicionais: cada algarismo vale o seu valor vezes uma potência da base. Em binário as posições valem 1, 2, 4, 8, 16, …; em hexadecimal 1, 16, 256, …, com A–F para 10–15. No complemento para dois de 8 bits, o bit da esquerda vale −128 em vez de +128; é assim que se guardam os números negativos.
Inverter e somar um
85 = 0101 0101
invertido: 1010 1010
+1 → 1010 1011
Ler sem sinal
1010 1011₂ = 256 − 85 = 171
Resposta
U = 171
2.Sistemas de numeração
Resposta: R = 8
Definir bits: cada bit vale uma potência de dois (128, 64, …, 1). Um dígito hexadecimal são exatamente quatro bits, e em complemento de dois de 8 bits o bit mais à esquerda vale −128. As operações bit a bit atuam em cada posição de bit separadamente.
Bit a bit
Deslocar para a direita por 3 move cada bit 3 posições para a direita; os bits que saem pela extremidade direita se perdem e entram zeros pela esquerda.
0100 0100 >> 3
= 0000 1000
Valor do resultado
0000 1000₂ = 8
Resposta
R = 8
3.Lógica proposicional e demonstrações
Resposta: q ∧ ¬r
Equivalência lógica: duas fórmulas são equivalentes (≡) quando têm o mesmo valor em todas as linhas da tabela-verdade. Uma tautologia vale 1 em todas as linhas, uma contradição vale 0 em todas as linhas, e uma contingência não é nenhuma das duas. Leis úteis: De Morgan, ¬(a ∧ b) ≡ ¬a ∨ ¬b e ¬(a ∨ b) ≡ ¬a ∧ ¬b; a → b ≡ ¬a ∨ b ≡ ¬b → ¬a (contrapositiva); ¬(a → b) ≡ a ∧ ¬b; e as leis distributivas, a ∨ (b ∧ c) ≡ (a ∨ b) ∧ (a ∨ c).
Partes da implicação
a = q, b = r
Negação da implicação
¬(a → b) ≡ a ∧ ¬b = q ∧ ¬r
Resposta
q ∧ ¬r
Se a suposição leva a uma contradição, a implicação deve ser verdadeira.
4.Lógica proposicional e demonstrações
Resposta: ∃x ∃y (R(x, y) ∧ ¬R(y, x))
Quantificadores e argumentos: ¬∀x P(x) ≡ ∃x ¬P(x) e ¬∃x P(x) ≡ ∀x ¬P(x). Mova a negação para dentro, troque todo quantificador que ela atravessa e negue a fórmula interna com as leis proposicionais, como ¬(a → b) ≡ a ∧ ¬b. Um argumento é válido quando a conclusão vale 1 em toda linha em que todas as premissas valem 1. Uma única linha com premissas verdadeiras e conclusão falsa é um contraexemplo e mostra que o argumento é inválido.
As outras alternativas mantêm um quantificador inalterado, mudam a ordem dos quantificadores ou negam a fórmula interna de forma errada.
5.Lógica digital: portas, mapas de Karnaugh e flip-flops
Resposta: L = 3
Álgebra booleana: as regras que simplificam expressões são X + X′ = 1 e X·X′ = 0, X + X = X, a absorção X + X·Y = X, a regra de combinação X·Y + X·Y′ = X, X + X′Y = X + Y e o teorema do consenso XY + X′Z + YZ = XY + X′Z. As leis de De Morgan transformam (X·Y)′ em X′ + Y′ e (X + Y)′ em X′·Y′. Um mapa de Karnaugh aplica essas regras graficamente: cada grupo de duas células vizinhas é um uso de XY + XY′ = X.
Mintermos da expressão
AC → m(5, 7)
AC′ → m(4, 6)
A′B′C′ → m(0)
Agrupe e leia
F = B′C′ + A
Conte os literais
L = 3
Resposta
L = 3
6.Lógica digital: portas, mapas de Karnaugh e flip-flops
Resposta: N = 4
Flip-flops e contadores: um flip-flop muda apenas na borda ativa do clock. D copia a sua entrada (Q⁺ = D); T inverte quando T = 1; JK mantém para 00, zera para 01, seta para 10 e inverte para 11. Um contador binário de n bits tem 2ⁿ estados e conta módulo 2ⁿ; um contador módulo N conta 0, 1, …, N − 1 e volta a 0, e precisa de flip-flops em número igual ao menor n com 2ⁿ ≥ N. Cada estágio de um contador assíncrono (ripple) divide a frequência por dois, de modo que a última saída de um contador módulo N funciona a fclk/N. Um contador Johnson de n flip-flops tem 2n estados, um contador em anel n.
Inversos e congruências: a tem inverso módulo n exatamente quando mdc(a, n) = 1. O algoritmo de Euclides estendido escreve 1 = s·n + t·a, e então a⁻¹ ≡ t (mod n). Uma congruência a·x ≡ b (mod n) com mdc(a, n) = 1 tem a solução x ≡ a⁻¹·b. Duas congruências x ≡ r₁ (mod m₁) e x ≡ r₂ (mod m₂) com módulos coprimos têm uma solução módulo m₁·m₂ (teorema chinês do resto). O φ(n) de Euler conta os números de 1 a n que são coprimos com n: φ(n) = n·∏(1 − 1/p).
Inverso de 17
r = 44, t = 0
r = 17, q = 2, t = 1
r = 10, q = 1, t = −2
r = 7, q = 1, t = 3
r = 3, q = 2, t = −5
r = 1, q = 3, t = 13
17−1 ≡ 13 (mod 44)
Resolva
x ≡ 13·41 = 533 ≡ 5 (mod 44)
verificação: 17·5 = 85 ≡ 41 (mod 44)
Resposta
x = 5
8.Teoria dos números e aritmética modular
Resposta: m = 89
Potências modulares e RSA: calcule aᵏ mod n por elevação ao quadrado repetida: escreva k em binário, eleve ao quadrado, reduza a cada passo e multiplique as potências cujo bit é 1. Fermat: aᵖ⁻¹ ≡ 1 (mod p) para um primo p que não divide a, então o expoente pode ser reduzido módulo p − 1. RSA: escolha primos p e q, n = p·q e φ(n) = (p − 1)(q − 1); o expoente público e é coprimo com φ(n), e o expoente privado é d = e⁻¹ mod φ(n). Cifre com c = mᵉ mod n e decifre com m = cᵈ mod n.
Expoente privado
n = 205, φ(n) = 160
d = 13−1 mod 160 = 37
Decifre por elevação ao quadrado repetida
37 = 32 + 4 + 1
941 ≡ 94 (mod 205)
942 ≡ 21 (mod 205)
944 ≡ 31 (mod 205)
948 ≡ 141 (mod 205)
9416 ≡ 201 (mod 205)
9432 ≡ 16 (mod 205)
9437 ≡ 94·31·16 ≡ 89 (mod 205)
Mensagem
m = 89
verificação: 8913 mod 205 = 94
Resposta
m = 89
9.Algoritmos e complexidade
Resposta: D · Um array que já está ordenado
Porque é esta a resposta
Com entrada ordenada, o pivô é sempre o mínimo, então um lado fica vazio e o outro tem n − 1 elementos, o que dá O(n²).
Resposta
D · Um array que já está ordenado
10.Algoritmos e complexidade
Resposta: D · O quickselect roda em O(n) esperado, e a mediana das medianas garante O(n) no pior caso
Porque é esta a resposta
O trabalho esperado do quickselect é n + n/2 + n/4 + ... = O(n) com pivôs aleatórios; escolher o pivô como mediana das medianas torna o pior caso linear.
Resposta
D · O quickselect roda em O(n) esperado, e a mediana das medianas garante O(n) no pior caso
11.Estruturas de dados
Resposta: A · O(L), independentemente de quantas palavras estão armazenadas
Porque é esta a resposta
Cada caractere escolhe um filho, então uma busca leva L passos, não importa quantas palavras a trie contenha.
Resposta
A · O(L), independentemente de quantas palavras estão armazenadas
12.Estruturas de dados
Resposta: C · Todas as folhas estão na mesma profundidade
Porque é esta a resposta
Os nós se dividem para cima quando estão cheios e a árvore só fica mais alta quando a raiz se divide, então todas as folhas ficam sempre no mesmo nível.
Resposta
C · Todas as folhas estão na mesma profundidade
13.Teoria dos grafos
Resposta: Caminho euleriano, sem circuito
Euler, Hamilton e árvores: um grafo conexo tem um circuito euleriano (cada aresta uma vez, de volta ao início) quando todo vértice tem grau par, e um caminho euleriano que não é circuito quando exatamente dois vértices têm grau ímpar; o caminho vai então de um vértice ímpar ao outro. Um circuito hamiltoniano visita cada vértice uma vez; Kn tem (n − 1)!/2 deles. Uma árvore com n vértices tem n − 1 arestas, e um grafo conexo com m arestas mantém uma árvore geradora depois de remover m − n + 1 arestas.
O caminho euleriano começa em um vértice ímpar e termina no outro.
14.Teoria dos grafos
Resposta: N = 4
Graus: o grau de um vértice é o número de arestas que o tocam. Cada aresta tem duas pontas, então os graus somam o dobro do número de arestas: Σ deg(v) = 2|E| (o lema do aperto de mãos). Portanto o número de vértices de grau ímpar é par. Kn tem n(n − 1)/2 arestas, um grafo k-regular com n vértices tem nk/2, e uma árvore com n vértices tem n − 1 arestas.
Matriz de adjacência
A: 0 1 1 0 0 0
B: 1 0 1 1 1 0
C: 1 1 0 0 0 0
D: 0 1 0 0 1 0
E: 0 1 0 1 0 1
F: 0 0 0 0 1 0
Vizinhos comuns
(M²)BB = 1·1 + 0·0 + 1·1 + 1·1 + 1·1 + 0·0 = 4
Resposta
N = 4
15.Bases de dados e SQL
Resposta: B · Todas as linhas da tabela da esquerda e as linhas correspondentes da direita, com NULLs onde não há correspondência
Porque é esta a resposta
Uma junção externa à esquerda mantém todas as linhas da esquerda; as colunas da direita sem correspondência são preenchidas com NULL.
Resposta
B · Todas as linhas da tabela da esquerda e as linhas correspondentes da direita, com NULLs onde não há correspondência
16.Bases de dados e SQL
Resposta: A · TRUE
Porque é esta a resposta
x > 5 é UNKNOWN, mas OR com TRUE é TRUE de qualquer forma, então a linha é mantida; da mesma forma, UNKNOWN AND FALSE seria FALSE.
Resposta
A · TRUE
17.Redes de computadores
Resposta: C · Muitas máquinas comprometidas inundam um alvo com tráfego
Porque é esta a resposta
Em um ataque DDoS, muitas origens sobrecarregam um servidor ou enlace, de modo que os usuários legítimos não podem ser atendidos. A multiplicidade de origens dificulta o bloqueio simples.
Resposta
C · Muitas máquinas comprometidas inundam um alvo com tráfego
18.Redes de computadores
Resposta: D · Para evitar confusão com segmentos antigos e dificultar a injeção de segmentos falsificados
Porque é esta a resposta
Números de sequência iniciais aleatórios impedem que segmentos atrasados de conexões antigas sejam aceitos e dificultam que atacantes fora do caminho forjem segmentos válidos.
Resposta
D · Para evitar confusão com segmentos antigos e dificultar a injeção de segmentos falsificados
19.Sub-redes IPv4
Resposta: x = 64
IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).
Tamanho do bloco
25 = 32
Sub-rede número 3
rede: (3 − 1)·32 = 64
broadcast: 64 + 32 − 1 = 95
Resposta
x = 64
20.Sub-redes IPv4
Resposta: x = 128
VLSM: cada LAN recebe a menor sub-rede com 2ʰ − 2 ≥ seu número de hosts, ou seja, prefixo 32 − h. Alocar primeiro as maiores sub-redes mantém cada bloco alinhado em um múltiplo do seu próprio tamanho, então os endereços de rede saem somando os tamanhos dos blocos.