Dados seis números enteros que representan las coordenadas x , y y z de dos vectores , la tarea es verificar si los dos vectores dados son colineales o no.
Ejemplos:
Entrada: x1 = 4, y1 = 8, z1 = 12, x2 = 8, y2 = 16, z2 = 24
Salida: Sí
Explicación: Los vectores dados: 4i + 8j + 12k y 8i + 16j + 24k son colineales.Entrada: x1 = 2, y1 = 8, z1 = -4, x2 = 4, y2 = 16, z2 = 8
Salida: No
Explicación: Los vectores dados: 2i + 8j – 4k y 4i + 16j + 8k no son colineales.
Enfoque: El problema se puede resolver con base en la idea de que dos vectores son colineales si se cumple alguna de las siguientes condiciones:
- Dos vectores A y B son colineales si existe un número n tal que A = n · b.
- Dos vectores son colineales si las relaciones de sus coordenadas son iguales, es decir, x1/x2 = y1/y2 = z1/z2 .
Nota: Esta condición no es válida si una de las componentes del vector es cero. - Dos vectores son colineales si su producto vectorial es igual al Vector NULO .
Por tanto, para resolver el problema, la idea es comprobar si el producto vectorial de los dos vectores dados es igual o no al Vector NULO . Si se encuentra que es cierto, escriba Sí . De lo contrario , imprima No.
A continuación se muestra la implementación del enfoque anterior:
C++14
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to calculate cross // product of two vectors void crossProduct(int vect_A[], int vect_B[], int cross_P[]) { // Update cross_P[0] cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1]; // Update cross_P[1] cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2]; // Update cross_P[2] cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0]; } // Function to check if two given // vectors are collinear or not void checkCollinearity(int x1, int y1, int z1, int x2, int y2, int z2) { // Store the first and second vectors int A[3] = { x1, y1, z1 }; int B[3] = { x2, y2, z2 }; // Store their cross product int cross_P[3]; // Calculate their cross product crossProduct(A, B, cross_P); // Check if their cross product // is a NULL Vector or not if (cross_P[0] == 0 && cross_P[1] == 0 && cross_P[2] == 0) cout << "Yes"; else cout << "No"; } // Driver Code int main() { // Given coordinates // of the two vectors int x1 = 4, y1 = 8, z1 = 12; int x2 = 8, y2 = 16, z2 = 24; checkCollinearity(x1, y1, z1, x2, y2, z2); return 0; }
Java
// Java program for the above approach class GFG{ // Function to calculate cross // product of two vectors static void crossProduct(int vect_A[], int vect_B[], int cross_P[]) { // Update cross_P[0] cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1]; // Update cross_P[1] cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2]; // Update cross_P[2] cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0]; } // Function to check if two given // vectors are collinear or not static void checkCollinearity(int x1, int y1, int z1, int x2, int y2, int z2) { // Store the first and second vectors int A[] = { x1, y1, z1 }; int B[] = { x2, y2, z2 }; // Store their cross product int cross_P[] = new int[3]; // Calculate their cross product crossProduct(A, B, cross_P); // Check if their cross product // is a NULL Vector or not if (cross_P[0] == 0 && cross_P[1] == 0 && cross_P[2] == 0) System.out.print("Yes"); else System.out.print("No"); } // Driver Code public static void main (String[] args) { // Given coordinates // of the two vectors int x1 = 4, y1 = 8, z1 = 12; int x2 = 8, y2 = 16, z2 = 24; checkCollinearity(x1, y1, z1, x2, y2, z2); } } // This code is contributed by AnkThon
Python3
# Python3 program for the above approach # Function to calculate cross # product of two vectors def crossProduct(vect_A, vect_B, cross_P): # Update cross_P[0] cross_P[0] = (vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1]) # Update cross_P[1] cross_P[1] = (vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2]) # Update cross_P[2] cross_P[2] = (vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0]) # Function to check if two given # vectors are collinear or not def checkCollinearity(x1, y1, z1, x2, y2, z2): # Store the first and second vectors A = [x1, y1, z1] B = [x2, y2, z2] # Store their cross product cross_P = [0 for i in range(3)] # Calculate their cross product crossProduct(A, B, cross_P) # Check if their cross product # is a NULL Vector or not if (cross_P[0] == 0 and cross_P[1] == 0 and cross_P[2] == 0): print("Yes") else: print("No") # Driver Code if __name__ == '__main__': # Given coordinates # of the two vectors x1 = 4 y1 = 8 z1 = 12 x2 = 8 y2 = 16 z2 = 24 checkCollinearity(x1, y1, z1, x2, y2, z2) # This code is contributed by bgangwar59
C#
// C# program for the above approach using System; class GFG{ // Function to calculate cross // product of two vectors static void crossProduct(int []vect_A, int []vect_B, int []cross_P) { // Update cross_P[0] cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1]; // Update cross_P[1] cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2]; // Update cross_P[2] cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0]; } // Function to check if two given // vectors are collinear or not static void checkCollinearity(int x1, int y1, int z1, int x2, int y2, int z2) { // Store the first and second vectors int []A = { x1, y1, z1 }; int []B = { x2, y2, z2 }; // Store their cross product int []cross_P = new int[3]; // Calculate their cross product crossProduct(A, B, cross_P); // Check if their cross product // is a NULL Vector or not if (cross_P[0] == 0 && cross_P[1] == 0 && cross_P[2] == 0) Console.Write("Yes"); else Console.Write("No"); } // Driver Code public static void Main (string[] args) { // Given coordinates // of the two vectors int x1 = 4, y1 = 8, z1 = 12; int x2 = 8, y2 = 16, z2 = 24; checkCollinearity(x1, y1, z1, x2, y2, z2); } } // This code is contributed by AnkThon
Javascript
<script> // Javascript program for the // above approach // Function to calculate cross // product of two vectors function crossProduct(vect_A, vect_B, cross_P) { // Update cross_P[0] cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1]; // Update cross_P[1] cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2]; // Update cross_P[2] cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0]; } // Function to check if two given // vectors are collinear or not function checkCollinearity(x1, y1, z1, x2, y2, z2) { // Store the first and second vectors let A = [x1, y1, z1]; let B = [x2, y2, z2]; // Store their cross product let cross_P = []; // Calculate their cross product crossProduct(A, B, cross_P); // Check if their cross product // is a NULL Vector or not if (cross_P[0] == 0 && cross_P[1] == 0 && cross_P[2] == 0) document.write("Yes") else document.write("No") } // Driver Code // Given coordinates // of the two vectors let x1 = 4, y1 = 8, z1 = 12; let x2 = 8, y2 = 16, z2 = 24; checkCollinearity(x1, y1, z1, x2, y2, z2); // This code is contributed by Hritik </script>
Yes
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por vikkycirus y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA