No.6 Sum square difference
問題.
Q. 1から10までの平方の和は,
\begin{align*}
1^2+2^2+\cdots+10^2 = 385
\end{align*}
1から10までの和の平方は,
\begin{align*}
(1+2+\cdots+10)^2 = 55^2 = 3025
\end{align*}
で, その差は \(3025-385=2640\) になります.
では, 1から100までの平方の和と和の平方の差はいくつになるか.
考え方とプログラム例(Python)
この問題は単純に計算すれば良さそうです.
LIST と map を利用して計算しました.
1 2 3 |
sum_square = sum(map(lambda x: x**2, xrange(1, 101))) square_sum = sum(xrange(1, 101))**2 print square_sum - sum_square |
ちなみに, 1から\(n\)までの和と, 平方の和は,
\begin{align*}
1+2+\cdots+n &= \dfrac{1}{2}n(n+1)\\
1^2+2^2+\cdots+n^2 &= \dfrac{1}{6}n(n+1)(2n+1)
\end{align*}
なので, 1から\(n\)までの和の平方と平方の和の差は,
\begin{align*}
(1+2+\cdots+n)^2 – (1^2+2^2+\cdots+n^2) &= \left\{\dfrac{1}{2}n(n+1)\right\}^2 – \dfrac{1}{6}n(n+1)(2n+1)\\
&= \dfrac{1}{4}n^2(n+1)^2-\dfrac{1}{6}n(n+1)(2n+1)\\
&= \dfrac{1}{12}n(n+1)\{3n(n+1)-2(2n+1)\}\\
&= \dfrac{1}{12}n(n+1)(n-1)(3n+2)
\end{align*}
となるので, この式の\(n\)に100を代入すれば答えになります.
今回は頑張れば手計算でもできそうな簡単な問題でした.