Logotipo do IFPE ← Voltar à apresentação
Instituição
Instituto Federal de Pernambuco — Campus Paulista
Curso
Tecnologia em Análise e Desenvolvimento de Sistemas
Disciplina
Matemática Aplicada
Docente
Profa. Camila Mendonça Morais

Lista de Exercícios

Determinantes na Computação

10 questões sobre determinantes aplicados à computação, na mesma ordem de assuntos da apresentação. Todas usam apenas determinante 2×2 e leitura de sinal — as contas são de uma ou duas etapas e podem ser feitas de cabeça. Cada questão tem a resolução comentada escondida; tente responder antes de abrir. O gabarito oficial está no fim.

O PDF sai com capa, uma questão por folha (com espaço para cálculos), o gabarito e, se marcado, as resoluções. No diálogo de impressão, desmarque "Cabeçalhos e rodapés".

As regras usadas nesta lista

Da regra (2): sinal positivo significa giro à esquerda; negativo, à direita; zero, pontos colineares. O determinante também é o fator pelo qual a transformação multiplica áreas.

Equipe responsável

  • Amanda Cavalcante
  • Anna Júlia Dantas
  • Edson Gonçalves
  • Gabriel Inácio
  • Gabriel Nunes
  • Lucas Aguiar
  • Miguel Ângelo
  • Pedro Tavares
  • Sarah Bethelim
  • Wenisson José
1 fácil Geometria — predicado de orientação

Um sistema de navegação precisa decidir de que lado de uma via um ponto se encontra. A via vai de A = (0, 0) até B = (4, 0), e o ponto consultado é C = (1, 3).

O valor do determinante e o giro correspondente são:

  1. −12, giro à direita
  2. 0, pontos colineares
  3. +3, giro à esquerda
  4. +12, giro à esquerda
  5. +12, giro à direita
Ver soluçãoOcultar solução

Alternativa D

Positivo significa giro à esquerda (anti-horário). A alternativa E acerta a conta e erra a leitura do sinal — que é justamente o que o predicado existe para dizer.

+12, giro à esquerda. Note que o valor 12 foi descartado na decisão: só o sinal importa.
2 fácil Geometria — colinearidade

Um validador de polígonos em um sistema de informação geográfica rejeita vértices que não acrescentam forma ao contorno. Ele testa os pontos A = (1, 1), B = (3, 3) e C = (5, 5).

O determinante de orientação desses três pontos vale:

  1. 0, e os pontos são colineares
  2. +4, e o giro é à esquerda
  3. −4, e o giro é à direita
  4. +8, e o giro é à esquerda
  5. +16, e o giro é à esquerda
Ver soluçãoOcultar solução

Alternativa A

Os três pontos estão sobre a mesma reta (y = x), então não formam triângulo: a figura degenerou. O ponto B não acrescenta nada ao contorno e pode ser descartado — é exatamente a decisão que o Graham scan toma no seu laço central.

det = 0: colinear. É o caso degenerado que o determinante existe para detectar.
3 fácil Geometria — Graham scan

O laço central do algoritmo de fecho convexo (Graham scan) é:

while (pilha.tamanho >= 2 &&
       orient(penultimo, ultimo, novo) <= 0)
    pilha.remover();
pilha.empilhar(novo);

Quando o determinante do teste resulta negativo, o algoritmo:

  1. Descarta o ponto novo e continua com o próximo candidato.
  2. Remove o ponto do meio da pilha, porque ele não pertence ao fecho.
  3. Reordena todos os pontos pelo ângulo e recomeça.
  4. Calcula a distância entre os três pontos para desempatar.
  5. Interrompe a execução, por ter encontrado um caso degenerado.
Ver soluçãoOcultar solução

Alternativa B

Determinante negativo significa que os três últimos pontos giram para a direita — o do meio faz o contorno "afundar" para dentro, e portanto não pode estar no fecho convexo. O while o remove e testa de novo com o que sobrou, podendo remover vários seguidos.

As alternativas C e D descrevem operações que o algoritmo não faz no laço: a ordenação acontece uma vez só, antes, e nenhuma distância é calculada. É esse o ponto da questão — o algoritmo inteiro se reduz a testes de sinal de determinante.

Remove o ponto do meio. Nenhuma outra operação geométrica é necessária.
4 fácil Computação gráfica — fator de área

Um editor gráfico aplica a um objeto a transformação linear dada pela matriz abaixo. O objeto original ocupa uma área de 5 cm².

Depois da transformação, a área passa a ser:

  1. 5 cm² (a área não muda)
  2. 10 cm²
  3. 35 cm²
  4. 50 cm²
  5. 70 cm²
Ver soluçãoOcultar solução

Alternativa D

O determinante é o fator pelo qual a transformação multiplica áreas — não é preciso transformar cada vértice e recalcular: basta multiplicar pela área original.

A alternativa B confunde o determinante (10) com a área final; a C soma em vez de multiplicar.

50 cm². Essa é a definição geométrica do determinante, e é o que a demonstração do slide 7 mede na tela.
5 fácil Computação gráfica — invertibilidade

Ao aplicar a transformação abaixo, um programa descobre que não consegue mais recuperar as posições originais dos vértices.

A explicação correta é:

  1. O determinante vale 8, e valores altos causam perda de precisão.
  2. O determinante vale 0: a transformação achatou o plano numa reta e a informação de uma dimensão foi destruída.
  3. O determinante é negativo, e transformações que espelham não podem ser desfeitas.
  4. O determinante vale 1, o que indica que a matriz é uma rotação.
  5. O problema não tem relação com o determinante, e sim com o arredondamento em ponto flutuante.
Ver soluçãoOcultar solução

Alternativa B

A segunda coluna é o dobro da primeira: as duas direções independentes do plano foram levadas para a mesma direção. A área da imagem é zero, e infinitos pontos de origem foram parar no mesmo lugar — não há como dizer de qual deles cada ponto veio.

A alternativa C descreve o caso de determinante negativo, que inverte a orientação mas continua perfeitamente invertível.

det = 0: a informação não está difícil de recuperar — ela não existe mais.
6 fácil Computação gráfica — back-face culling

Blender, Unity e Unreal verificam o sinal do determinante da matriz de modelo antes de desenhar um objeto. Quando esse determinante é negativo, o motor precisa:

  1. Recalcular a área de todos os triângulos do objeto.
  2. Inverter as normais, porque a orientação foi espelhada e a iluminação sairia ao contrário.
  3. Recusar a renderização, por se tratar de matriz inválida.
  4. Aumentar a precisão dos cálculos para evitar arredondamento.
  5. Converter o objeto para coordenadas homogêneas antes de projetar.
Ver soluçãoOcultar solução

Alternativa B

Determinante negativo significa orientação invertida — o objeto foi espelhado. As normais, que apontavam para fora, passam a apontar para dentro, e o cálculo de iluminação inverte: superfícies iluminadas ficam escuras e vice-versa, dando a impressão de buracos no objeto.

Vale notar por que basta olhar o determinante: a matriz de modelo combina rotação, escala e cisalhamento, e nenhuma dessas parcelas isolada diz se houve inversão. Só o determinante resume o efeito líquido sobre a orientação.

Inverter as normais. É uma decisão de sinal tomada a cada quadro.
7 fácil Rastreio de código — determinante em Python

Considere o programa abaixo, que implementa o predicado de orientação:

def orient(a, b, c):
    return (b[0]-a[0])*(c[1]-a[1]) - (b[1]-a[1])*(c[0]-a[0])

print(orient((0,0), (2,0), (0,5)))

Qual valor será exibido no console?

  1. −10
  2. 0
  3. 5
  4. 7
  5. 10
Ver soluçãoOcultar solução

Alternativa E

Positivo: giro à esquerda. O triângulo tem área |10| / 2 = 5, o que confere com um triângulo retângulo de catetos 2 e 5.

Repare que o código usa a forma pré-subtraída — as diferenças são calculadas antes das multiplicações. Essa escolha não é estética: é ela que torna o predicado numericamente estável, porque as subtrações acontecem entre números da mesma ordem de grandeza, antes de qualquer multiplicação.

Saída: 10. Uma linha de código resolve o predicado inteiro.
8 fácil Ray tracing — raio paralelo à face

Antes de calcular onde um raio atinge uma face, o algoritmo de Möller-Trumbore avalia o determinante do sistema. Na versão plana do problema, ele se forma com a direção do raio d e a direção da aresta e:

Para d = (2, 1) e e = (4, 2), o valor do determinante e a decisão do algoritmo são:

  1. det = 8, intersecção aceita
  2. det = 2, intersecção aceita
  3. det = 0, raio paralelo à aresta — intersecção descartada
  4. det = −8, o raio atinge a face por trás
  5. det = 0, o raio atinge a aresta exatamente na ponta
Ver soluçãoOcultar solução

Alternativa C

Determinante zero significa que d e e apontam na mesma direção — de fato, e = 2d. O raio corre paralelo à aresta, então não existe um único ponto de encontro: ou não há encontro nenhum, ou há infinitos. O algoritmo não tem o que devolver e descarta o caso antes de qualquer divisão.

É isso que o teste if (abs(det) < EPSILON) return false; faz na primeira linha do Möller-Trumbore: o determinante é a condição de parada, verificada antes da conta, e não um resultado obtido depois dela. Na versão real, em três dimensões, o determinante é 3×3 — mas o critério é idêntico.

det = 0: o raio é paralelo à aresta e a intersecção é descartada. A alternativa E acerta o número e erra a conclusão — det = 0 não indica contato na ponta, indica paralelismo.
9 fácil Recomendação — diversidade (DPP)

Um sistema de recomendação mede a diversidade de dois itens pelo determinante da matriz cujas colunas são os vetores de característica desses itens. Dois vídeos têm os vetores u = (1, 2) e v = (3, 6):

O valor do determinante e o que ele diz sobre a dupla são:

  1. det = 12; os dois itens são bem diversos
  2. det = 6; diversidade média
  3. det = −12; a ordem dos itens está invertida
  4. det = 0; os itens são redundantes — v é múltiplo de u
  5. det = 0; o sistema deve recusar os dois itens
Ver soluçãoOcultar solução

Alternativa D

Como v = 3u, os dois vetores apontam exatamente na mesma direção. O paralelogramo que eles formariam tem área zero — está achatado numa reta. Recomendar os dois é recomendar duas vezes a mesma coisa.

É o mesmo colapso de todos os outros casos da lista, aplicado a outro domínio: duas direções que deveriam ser independentes viraram a mesma direção. Por isso, nos Processos de Ponto Determinantais, recomendar com variedade vira o problema de maximizar determinante.

det = 0: itens redundantes. A alternativa E acerta a conta e erra a decisão — recusar os dois seria exagero; basta não exibi-los juntos.
10 média Criptografia — cifra de Hill (histórica)

Na cifra de Hill, a chave é uma matriz, e decifrar exige invertê-la em aritmética módulo 26 — o tamanho do alfabeto. Isso só é possível quando o determinante não tem fator comum com 26. Para a chave abaixo:

O determinante e a validade da chave são:

  1. det = 10; chave inválida, pois 10 e 26 têm o fator comum 2
  2. det = 10; chave válida, pois o determinante é diferente de zero
  3. det = 10; chave válida, pois 10 é menor que 26
  4. det = 26; chave inválida, pois o determinante é igual ao tamanho do alfabeto
  5. det = 0; a matriz não tem inversa
Ver soluçãoOcultar solução

Alternativa A

Como 26 = 2 · 13 e 10 = 2 · 5, os dois compartilham o fator 2. Não existe inteiro que multiplicado por 10 devolva 1 módulo 26, então a matriz não tem inversa nesse sistema — e sem inversa não há como decifrar a mensagem.

A alternativa B é a armadilha, e é o ponto inteiro da questão: sobre os números reais, det ≠ 0 bastaria. Em aritmética modular o critério é mais exigente, e é por isso que, das 456.976 matrizes 2×2 possíveis módulo 26, apenas 157.248 (34,4%) servem como chave.

det = 10, chave inválida. Ressalva: a cifra de Hill é quebrada por ataque de texto claro conhecido e tem valor exclusivamente histórico.

Gabarito oficial

01. D02. A03. B 04. D05. B
06. B07. E08. C 09. D10. A

Lista elaborada a partir dos mesmos modelos e números usados na apresentação "Determinantes na Computação" (IFPE) e no material de apoio. Todas as resoluções foram conferidas por cálculo direto.

← Voltar à apresentação