IVl*_*lad 11
请注意:
A + A^2 = A(I + A)
A + A^2 + A^3 = A(I + A) + A^3
A + A^2 + A^3 + A^4 = (A + A^2)(I + A^2)
= A(I + A)(I + A^2)
Run Code Online (Sandbox Code Playgroud)
让
B(n) = A + ... + A^n
Run Code Online (Sandbox Code Playgroud)
我们有:
B(1) = A
B(n) = B(n / 2) * (I + A^(n / 2)) if n is even
B(n) = B(n / 2) * (I + A^(n / 2)) + A^n if n is odd
Run Code Online (Sandbox Code Playgroud)
因此,您将执行对数步数,而无需计算反转.
虽然直接实施将导致一个(log n)^2因素,你可以把它log n通过计算的力量A为你计算B.