关于(不太是)四元数模块

*往里头写点数学用语* 嘭!模块变得不可能了。

如果模块上写有 i2 = j2 = k2 = ijk = -1 ,这就是四元数模块。

创建有4个数字的列表。里面的数字会被称为[a, b, c, d]。

列表里面的每个数字都有一个编号和颜色。


用以下方法填充列表:

  • 列表中的每个位置会以此顺序拥有右侧的公式的符号的颜色:

    [-1, i, j, k]

  • 复制列表。
  • 观察模块的按钮。对每一对颜色的数字,用对里最大的数字填充列表里的相应颜色的位置。
  • 对第二个列表用对里最小的数字也这样做。
    提示:0要看作10。

现在,如果满足以下的条件的话,同色的数字要互换:

i或j是红色的。
炸弹至少有一个PS/2端口。
序列号里有BLUE这一单词里的任何字母。
两个白色键的和是质数。

现在,对列表做最后的调整:

  • 用10代替0。
  • 如果列表中有任何数字也在序列号中(一或多次),将它乘以-1。
    如果序列号中有数字0,将列表中的10(如果含有10)乘以-1。
  • 如果炸弹上没有亮起的指示灯,把第一个列表中的 bcd乘以-1。
    如果炸弹上没有熄灭的指示灯,把第二个列表中的 b,c d乘以-1。
  • 如果炸弹上的电池数量是偶数,把两个列表互换

最后一步:把两个列表的数字分别标记为:

[a1, b1, c1, d1] and [a2, b2, c2, d2]


观察SUBMIT按钮的颜色,找到那个颜色在任何列表中的位置,并使用与其位置对应的公式计算答案并发送。

1 ⇒ (a1*a2 - b1*b2 - c1*c2 - d1*d2)
2 ⇒ (a1*b2 + b1*a2 + c1*d2 - d1*c2)
3 ⇒ (a1*c2 - b1*d2 + c1*a2 + d1*b2)
4 ⇒ (a1*d2 + b1*c2 - c1*b2 + d1*a2)
白色 ⇒ (a12 + b12 + c12 + d12) * (a22 + b22 + c22 + d22)

举例:

模块上有以下键盘:

i2 = j2 = k2 = i j k = -1
7 8 9
4 5 6
1 2 3
0

列表的颜色应该是 [   ,   ,   ,    ]

第一个列表应该是 [ 8, 9, 0, 4 ]

第二个列表应该是 [ 7, 5, 1, 2 ]

例中的序列号是136AS8,没有熄灭的指示灯,有PS/2端口,SUBMIT按钮是蓝色,所以列表应该是:

[ -8, 9, -1, 4 ] and [ 7, -5, -10, -2 ]

采取的行动:

  • 炸弹上有PS/2端口,绿色条件成立 ⇒ 绿色数字互相交换
  • “0” ⇒ “10”
  • 序列号中有1和8 ⇒ 乘以-1
  • 没有熄灭的指示灯 ⇒ 第二个列表中的b, c 和 d乘以-1

SUBMIT按钮是蓝色,用第一个公式,答案是“-13”。