ab の mod 3 における寄与を考えるとき, b が偶数か奇数かで性質が変わってしまう. よって,
x1→y10→x10→⋯→y1 の順に決めながら, 直前に決めた数の偶奇で場合分けを行い,
y10x1→x10y10→y9x10→⋯→x1y1
の順に寄与を反映させる.
また最初に決めた x1 の値で, 最後の x1y1 の寄与も依存するから最初に決める x1 の偶奇で場合分けをする.
① x1∈{1,3} のとき.
多項式 ( 3 で割った余りが同じ次数は同一視, すなわち x3−1 を法として考える) f(x),g(x) を以下のように定義する.
- Z=(x1,y10), S=y10x1 とし, Z の末尾の要素 を 2 で割った余りが i で, S を 3 で割った余りが j となる Z の個数を dp[i][j] とし,
f(x)=dp[0][0]+dp[0][1]x+dp[0][2]x2,g(x)=dp[1][0]+dp[1][1]x+dp[1][2]x2
とする.
このとき, 初期値として,
(f(x)g(x))=(1+xx2)
が成り立つ. Z←(Z,x10), S←S+x10y10 とし, このとき f,g は以下のように変化する.
(f(x)g(x))←(x1+xx21+x)(f(x)g(x))
次に, Z←(Z,y9), S←S+y9x10 のときの (f,g) の遷移は
(f(x)g(x))←(1+xx1+xx2)(f(x)g(x))
となる. 従って, 初期値 Z=(x1,y10), S=y10x1 から
Z←(Z,x10,y9,x9,…,y1),S←S+x10y10+y9x10+x9y9+⋯+y1x2
における (f,g) の遷移は
(f(x)g(x))←((1+xx1+xx2)(x1+xx21+x))9(f(x)g(x))
であり, この状態から最後 Z←(Z,x1),S←S+x1y1 としたときの遷移は x1∈{1,3} に注意すると,
(f(x)g(x))←(01+x01+x)(f(x)g(x))
となる. したがって, 以下の多項式 f(x),g(x) それぞれの 3 の倍数次の項の係数の総和を求めれば良い.
(f(x)g(x))=(01+x01+x)((1+xx1+xx2)(x1+xx21+x))9(1+xx2)
上式に x=1,ω,ω2 を代入すると,
(f(1)g(1))(f(ω)g(ω))(f(ω2)g(ω2))=(0202)((2121)(1212))9(21)=(0202)((6363))9(21)=(0202)39(2121)9(21)=(0202)39×38(2121)(21)=(018×317)=(01+ω01+ω)((1+ωω1+ωω2)(ω1+ωω21+ω))9(1+ωω2)=(0−ω20−ω2)((−ω2ω−ω2ω2)(ω−ω2ω2−ω2))9(−ω2ω2)=(0−ω20−ω2)(−1+ωω2−ω01−ω)9(−ω2ω2)=(0−ω20−ω2)(−1+ω)9(1ω0−1)9(−ω2ω2)=(0−ω20−ω2)(3exp(65πi))9(1ω0−1)9(−ω2ω2)=(0−ω20−ω2)39(−i)(1ω0−1)(−ω2ω2)=⎝⎛0235+339i⎠⎞=(f(ω)g(ω))=⎝⎛0235−339i⎠⎞
したがって, ①の場合求める組の個数は
31(18×317+235+339i+235−339i)=18×316+34 である.
②x1∈{2} のとき.
①と同様に行うが初期値と最後の遷移が違うことに注意すると, 答えは以下の多項式 f(x),g(x) それぞれの 3 の倍数次の項の係数の総和であることがわかる.
(f(x)g(x))=(x0x20)((1+xx1+xx2)(x1+xx21+x))9(1+xx)
①と同様に計算すると,
(f(1)g(1))(f(ω)g(ω))(f(ω2)g(ω2))=(9×3170)=⎝⎛235+339i0⎠⎞=⎝⎛235−339i0⎠⎞
したがって, ②の場合求める組の個数は, 9×316+34 である.
以上より, 求める答えは
(18×316+34)+(9×316+34)=27×316+2×34.