0479 渐增根
* * * *
拉格朗日计划
* * * *
渐增根

令$a_k, b_k,c_k\in\mathbb C$分别为方程$1/x=(k/x)^2(k+x^2) - kx$的三个根。

例如对$k=5$,$a_5, b_5, c_5$的近似值为分别是$5.727244, -0.363622+2.057397i, -0.363622-2.057397i$。

令$S(n)=\sum_{p,k=1}^n(a_k+b_k)^p(b_k+c_k)^p(c_k+a_k)^p$。

$S(n)$始终是整数,例如$S(4)=51160$。

求$S(10^6) \bmod 10^9+7$。

本题难度:



解答

原方程等同于 $$kx^3-k^2x^2+x-k^3=0.$$ 令 $$f(x)=(x-a_k)(x-b_k)(x-c_k)=x^3-kx^2+\frac{1}{k}\cdot x-k^2.$$ 则 $$a_k+b_k+c_k=k$$ 从而 $$(a_k+b_k)^p(b_k+c_k)^p(c_k+a_k)^p=(k-a_k)^p(k-b_k)^p(k-c_k)^p=\left(f(k)\right)^p=(1-k^2)^p.$$ 进而有 $$S(n)=\sum_{k=1}^n\sum_{p=1}^n(1-k^2)^p=\sum_{k=1}^n\frac{(k^2-1)((1-k^2)^n-1)}{k^2}$$ 直接计算即得结果$191541795$。

注:因使用 sympy计算$k^2$的乘法逆,以下代码为Python 3。

import sympy

n=10**6
mod=10**9+7

s=0
for k in range(1,n+1):
    d=k*k-1
    s=(s+d*(pow(-d,n,mod)-1)*sympy.mod_inverse(d+1,mod))%mod

print(s)