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; } }
向量叉乘(外积)的计算公式是:两个三维向量的叉乘结果是一个新的向量,垂直于原来的两个向量。