import java.util.*;
/**
数学表示
如果向量 a = [a₁, a₂, a₃],向量 b = [b₁, b₂, b₃],则:
a × b = [a₂b₃ - a₃b₂, a₃b₁ - a₁b₃, a₁b₂ - a₂b₁]
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 计算出这两个向量叉乘的结果
* @param vector1 int整型一维数组
* @param vector2 int整型一维数组
* @return int整型ArrayList
*/
public ArrayList<Integer> crossTimes (int[] a, int[] b) {
if (a.length != 3 || b.length != 3) {
throw new IllegalArgumentException("必须是三维向量");
}
int x = a[1] * b[2] - a[2] * b[1]; // a₂b₃ - a₃b₂
int y = a[2] * b[0] - a[0] * b[2]; // a₃b₁ - a₁b₃
int z = a[0] * b[1] - a[1] * b[0]; // a₁b₂ - a₂b₁
ArrayList<Integer> res = new ArrayList<>();
res.add(x);
res.add(y);
res.add(z);
return res;
}
}
向量叉乘(外积)的计算公式是:两个三维向量的叉乘结果是一个新的向量,垂直于原来的两个向量。

京公网安备 11010502036488号