PYTHON
Cedo ou tarde, você irá perceber que o ramo mais útil da matemática é a álgebra linear. Em alguns lugares, nem sequer utilizam o nome álgebra linear. Usam simplesmente matemática! Neste problema, você irá utilizar um pedacinho bem minúsculo da álgebra linear, voltado para geometria.
Na escola, nós aprendemos a determinar se um par de vetores bi ou tridimensionais é ortogonal (ou seja, se o ângulo entre os vetores é de 90o ) calculando seu produto interno euclidiano:
(para 2 dimensões - bidimensionais)
ou
(para 3 dimensões - tridimensionais)
Dois vetores u e v são ortogonais se, e somente se, u*v = 0. Neste problema, você deve determinar se um dado par de vetores n-dimensionais u e v é ortogonal.
Entrada:
A primeira linha da entrada contém um único inteiro n ( 1 ≤ n ≤ 105 ), que indica a dimensão dos vetores a serem lidos, ou seja, o número de coordenadas cartesianas de um vetor.
A segunda linha contém n inteiros ui (−100 ≤ ui ≤ 100) separados por espaço, que são as n coordenadas do vetor u.
A terceira linha contém n inteiros vi (−100 ≤ vi ≤ 100) separados por espaço, que são as n coordenadas do vetor v.
Saída:
Se os vetores u e v forem ortogonais, imprima a mensagem "ortogonais" (sem aspas duplas). Caso contrário, imprima o valor do produto interno euclidiano entre eles.
Observação:
Para ler as n coordenadas de um vetor em uma única linha, basta utilizar o seguinte código: vet = list(map(int,input().strip().split()))[:n]
No primeiro caso de teste, os vetores são ortogonais pois (-3)*1 + (-4)*1 + 2*1 + 5*1 = 0.
Anexos:
Soluções para a tarefa
Respondido por
2
O programa abaixo não conta com validação de dados ou controle/tratamento de exceções, assim cabe ao usuário digitar cuidadosamente as informações solicitadas de acordo com o que é mostrado no texto.
Como sugere o enunciado, vamos "captar" os vetores por list(map(int,input().strip().split()))[:n], mas, pra facilitar a legibilidade do código, separaremos essa linha em duas.
Perceba que o fatiamento mostrado [:n] foi adicionado para garantir que haja apenas "n" números por vetor, como previsto no exercício.
Ainda, não será utilizado o método strip(), pois não terá qualquer efeito nesse exemplo, já que o split() estará justamente utilizando os espaços em branco para separar os dados contidos na string.
[Python 3.8]
Perguntas interessantes
Física,
5 meses atrás
Matemática,
5 meses atrás
Química,
5 meses atrás
Matemática,
6 meses atrás
Geografia,
6 meses atrás
Português,
10 meses atrás
Matemática,
10 meses atrás