効率よく数える
f(x)=(x+2)*(x-10)^2
g(x)=(x+2)*(x-5)
の2つで囲まれる範囲内部(境界上の点を含まず。)にある整数(x,y)の組は何個あるか?
効率がよいとは言えない、ごく一般的な解き方ですが
h(x)=f(x)-g(x)=(x+2)(x^2-21x+105)=x^3-19x^2+63x+210
とおくとh(x)=0の解はx=-2,(21±√21)/2≒(21±4.6)/2={8.2,12.8}
また
i(n)=Σ[x=1~n]h(x)=(n(n+1)/2)^2-19n(n+1)(2n+1)/6+63n(n+1)/2+210n
=(3n^3-70n^2+267n+2860)n/12
よって囲まれた内部の格子点の数は
Σ[x=-1~12](|h(x)|-1)
=Σ[x=-1~8](h(x)-1)+Σ[x=9~12](-h(x)-1)
=(h(-1)-1)+(h(0)-1)+Σ[x=1~8](h(x)-1)+Σ[x=1~12](-h(x)-1)-Σ[x=1~8](-h(x)-1)
=(-1-19-63+210-1)+(210-1)+Σ[x=1~8](2h(x))-Σ[x=1~12](h(x)+1)
=126+209+2Σ[x=1~8]h(x)-Σ[x=1~12]h(x)-12
=323+2Σ[x=1~8]h(x)-Σ[x=1~12]h(x)
=323+2i(8)-i(12)
=323+16(1536-4480+2136+2860)/12-(5184-10080+3204+2860)
=323+4(2052)/3-(1168)
=323+2736-1168
=1891