考虑用三进制数存储决策,就按照题面中的字典序(名字长度?没看出 Rock Paper Scissors 遵循了什么字典序)分别对应 0,1,2,可以求出高适的决策概率分布 A_{[0,3^m)},那么需要求的就是李白在所有决策上的胜率情况 B_{[0,3^m)}。考虑 A \rightarrow B 是一个什么样的变换。
发现双方决策分别为 i,j 时的胜负情况只和 i 与 j 在三进制的每一位上的差有关,对于每一位,差为 0,1,2 分别代表平、胜、负,发现这个差也可以当做是个三进制数 x,那么可以对于每个 x \in [0,3^m) 计算这时李白是否获胜,并也记录成一个数组 C_{[0,3^m)},所有胜的位置为 1,否则为 0。
那么发现这其实是一个三进制上的不进位加法,设这样的不进位加法运算为 \oplus,那么 A \rightarrow B 的变换实际上就是 B_{i \oplus j} \leftarrow B_{i \oplus j} + A_iC_j。我们知道在二进制中类似于这样的运算可以使用 FWT 或 FMT 快速求得,那么在三进制中是否存在类似算法呢?