有两个向量A和B ,我们必须找到两个向量数组的点积和叉积。点积也称为标量积,叉积也称为矢量积。
点积–让我们给出两个向量A = a1 * i + a2 * j + a3 * k和B = b1 * i + b2 * j + b3 * k。其中,i,j和k是沿x,y和z方向的单位矢量。然后将点积计算为点积= a1 * b1 + a2 * b2 + a3 * b3
例子 –
A = 3 * i + 5 * j + 4 * k
B = 2 * i + 7 * j + 5 * k
dot product = 3 * 2 + 5 * 7 + 4 * 5
= 6 + 35 + 20
= 61
叉积–让我们给出两个向量A = a1 * i + a2 * j + a3 * k和B = b1 * i + b2 * j + b3 * k。然后将叉积计算为叉积=(a2 * b3 – a3 * b2)* i +(a3 * b1 – a1 * b3)* j +(a1 * b2 – a2 * b1)* k,其中[[a2 * b3 – a3 * b2),(a3 * b1 – a1 * b3),(a1 * b2 – a2 * b1)]是沿i,j和k方向的单位矢量系数。
例子 –
A = 3 * i + 5 * j + 4 * k
B = 2 * i + 7 * j + 5 * k
cross product
= (5 * 5 - 4 * 7) * i
+ (4 * 2 - 3 * 5) * j + (3 * 7 - 5 * 2) * k
= (-3)*i + (-7)*j + (11)*k
例子 –
Input: vect_A[] = {3, -5, 4}
vect_B[] = {2, 6, 5}
Output: Dot product: -4
Cross product = -49 -7 28
代码-
C++
// C++ implementation for dot product
// and cross product of two vector.
#include
#define n 3
using namespace std;
// Function that return
// dot product of two vector array.
int dotProduct(int vect_A[], int vect_B[])
{
int product = 0;
// Loop for calculate cot product
for (int i = 0; i < n; i++)
product = product + vect_A[i] * vect_B[i];
return product;
}
// Function to find
// cross product of two vector array.
void crossProduct(int vect_A[], int vect_B[], int cross_P[])
{
cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1];
cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2];
cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0];
}
// Driver function
int main()
{
int vect_A[] = { 3, -5, 4 };
int vect_B[] = { 2, 6, 5 };
int cross_P[n];
// dotProduct function call
cout << "Dot product:";
cout << dotProduct(vect_A, vect_B) << endl;
// crossProduct function call
cout << "Cross product:";
crossProduct(vect_A, vect_B, cross_P);
// Loop that print
// cross product of two vector array.
for (int i = 0; i < n; i++)
cout << cross_P[i] << " ";
return 0;
}
Java
// java implementation for dot product
// and cross product of two vector.
import java.io.*;
class GFG {
static int n = 3;
// Function that return
// dot product of two vector array.
static int dotProduct(int vect_A[], int vect_B[])
{
int product = 0;
// Loop for calculate cot product
for (int i = 0; i < n; i++)
product = product + vect_A[i] * vect_B[i];
return product;
}
// Function to find
// cross product of two vector array.
static void crossProduct(int vect_A[], int vect_B[],
int cross_P[])
{
cross_P[0] = vect_A[1] * vect_B[2]
- vect_A[2] * vect_B[1];
cross_P[1] = vect_A[2] * vect_B[0]
- vect_A[0] * vect_B[2];
cross_P[2] = vect_A[0] * vect_B[1]
- vect_A[1] * vect_B[0];
}
// Driver code
public static void main(String[] args)
{
int vect_A[] = { 3, -5, 4 };
int vect_B[] = { 2, 6, 5 };
int cross_P[] = new int[n];
// dotProduct function call
System.out.print("Dot product:");
System.out.println(dotProduct(vect_A, vect_B));
// crossProduct function call
System.out.print("Cross product:");
crossProduct(vect_A, vect_B, cross_P);
// Loop that print
// cross product of two vector array.
for (int i = 0; i < n; i++)
System.out.print(cross_P[i] + " ");
}
}
// This code is contributed by vt_m
Python3
# Python3 implementation for dot product
# and cross product of two vector.
n = 3
# Function that return
# dot product of two vector array.
def dotProduct(vect_A, vect_B):
product = 0
# Loop for calculate cot product
for i in range(0, n):
product = product + vect_A[i] * vect_B[i]
return product
# Function to find
# cross product of two vector array.
def crossProduct(vect_A, vect_B, cross_P):
cross_P.append(vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1])
cross_P.append(vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2])
cross_P.append(vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0])
# Driver function
if __name__=='__main__':
vect_A = [3, -5, 4]
vect_B = [2, 6, 5]
cross_P = []
# dotProduct function call
print("Dot product:", end =" ")
print(dotProduct(vect_A, vect_B))
# crossProduct function call
print("Cross product:", end =" ")
crossProduct(vect_A, vect_B, cross_P)
# Loop that print
# cross product of two vector array.
for i in range(0, n):
print(cross_P[i], end =" ")
# This code is contributed by
# Sanjit_Prasad
C#
// C# implementation for dot product
// and cross product of two vector.
using System;
class GFG {
static int n = 3;
// Function that return dot
// product of two vector array.
static int dotProduct(int[] vect_A,
int[] vect_B)
{
int product = 0;
// Loop for calculate cot product
for (int i = 0; i < n; i++)
product = product + vect_A[i] * vect_B[i];
return product;
}
// Function to find cross product
// of two vector array.
static void crossProduct(int[] vect_A,
int[] vect_B, int[] cross_P)
{
cross_P[0] = vect_A[1] * vect_B[2]
- vect_A[2] * vect_B[1];
cross_P[1] = vect_A[2] * vect_B[0]
- vect_A[0] * vect_B[2];
cross_P[2] = vect_A[0] * vect_B[1]
- vect_A[1] * vect_B[0];
}
// Driver code
public static void Main()
{
int[] vect_A = { 3, -5, 4 };
int[] vect_B = { 2, 6, 5 };
int[] cross_P = new int[n];
// dotProduct function call
Console.Write("Dot product:");
Console.WriteLine(
dotProduct(vect_A, vect_B));
// crossProduct function call
Console.Write("Cross product:");
crossProduct(vect_A, vect_B, cross_P);
// Loop that print
// cross product of two vector array.
for (int i = 0; i < n; i++)
Console.Write(cross_P[i] + " ");
}
}
// This code is contributed by vt_m.
PHP
输出:
Dot product:-4
Cross product:-49 -7 28