三维Levi-Civita符号是一个函数f
,该函数采用,至中的(i,j,k)
每个数字的三进制,定义为:{1,2,3}
{-1,0,1}
f(i,j,k) = 0
当i,j,k
不显着,即,i=j
或j=k
或k=i
f(i,j,k) = 1
当(i,j,k)
是的循环移位时(1,2,3)
,是的之一(1,2,3), (2,3,1), (3,1,2)
。f(i,j,k) = -1
当(i,j,k)
是的循环移位时(3,2,1)
,是的之一(3,2,1), (2,1,3), (1,3,2)
。
结果是符号的置换的(1,2,3)
,具有非置换给予0。可选地,如果我们的值相关联1,2,3
以正交单位基矢量e_1, e_2, e_3
,然后f(i,j,k)
是行列式的列3x3矩阵e_i, e_j, e_k
。
输入值
{1,2,3}
依次从三个数字开始。或者,您可以选择使用零索引{0,1,2}
。
输出量
它们的Levi-Civita函数值来自{-1,0,1}
。这是代码高尔夫。
测试用例
有27种可能的输入。
(1, 1, 1) => 0
(1, 1, 2) => 0
(1, 1, 3) => 0
(1, 2, 1) => 0
(1, 2, 2) => 0
(1, 2, 3) => 1
(1, 3, 1) => 0
(1, 3, 2) => -1
(1, 3, 3) => 0
(2, 1, 1) => 0
(2, 1, 2) => 0
(2, 1, 3) => -1
(2, 2, 1) => 0
(2, 2, 2) => 0
(2, 2, 3) => 0
(2, 3, 1) => 1
(2, 3, 2) => 0
(2, 3, 3) => 0
(3, 1, 1) => 0
(3, 1, 2) => 1
(3, 1, 3) => 0
(3, 2, 1) => -1
(3, 2, 2) => 0
(3, 2, 3) => 0
(3, 3, 1) => 0
(3, 3, 2) => 0
(3, 3, 3) => 0