はじめに
コジマです。
https://projecteuler.net/
の6問目を解いていきます。
問題
The square of the sum of the first ten natural numbers is,$$(1 + 2 + … + 10)^2 = 55^2 = 3025$$
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.
和訳(意訳)
初めの10個の平方数の和は、
$$1^2 + 2^2 + … + 10^2 = 385$$
初めの10個の和の平方数は、
$$(1 + 2 + … + 10)^2 = 55^2 = 3025$$
ゆえに、初めの10個の平方数の和と初めの10個の和の平方数の差は、 3025 − 385 = 2640.
初めの100個の平方数の和と初めの100個の和の平方数の差を求めよ。
解答例
ループとか噛ませる必要なさそうですね。
1からnまでの和\(S_{1n}\)は
$$S_{1n} = \frac{n(n + 1)}{2}$$
1からnまでの平方数の和\(S_{2n}\)は
$$S_{2n} = \frac{n(n+1)(2n+1)}{6}$$
\(n = 100\)として差を取ればいいですね。
# おまじない import numpy as np import math # 100まで n = 100 s1 = n*(n+1)/2 s2 = n*(n+1)*(2*n+1)/6 # 和の2乗-2乗の和をすればよい print(int(s1**2 - s2))
さいごに
解答はgithubにも上げています。
https://github.com/kojimanotech/project_euler/blob/master/0006_Sum_square_difference.ipynb
この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!
もっと学びたい人はこちら
Python、機械学習をもっと学びたいという人のためにおすすめのUdemy講座を紹介いたします!
Pythonの基本文法を押さえたい方はこちらの動画がおすすめです。
エンジニアになりたいと思って駆け出した方がPythonを選んだときはこの講座から始めるとよいと思います。
Python 3 エンジニア認定基礎試験の対策にもなります。
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス
プログラムの基礎が分かる方で機械学習に興味がある方はこちらがおすすめです。
SIGNATEという日本版Kaggleのサービスを実際に使用してハンズオン形式でデータ分析・機械学習を学ぶことができます。
もちろんこの動画だけで特級のデータサイエンティストになれるわけではないですが、機械学習の門を叩くにはとても良い講座だと思います。
【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
Pythonのライブラリで必ず押さえておきたいのがNumpy, Pandas, Matplotlibの3つ。
この3つを網羅的に学ぶことができる講座です。
英語の講座ですが、わかりやすい英語ですし、ソースコードメインで解説しているので
ソースコードを一緒に手を動かしながら学べば十分理解することができます。
機械学習を使わない人にもおすすめの講座です。
2021 NumPy, Pandas and Matplotlib A-Z™: for Machine Learning
気になった人はぜひ見てみてくださいね!
以上、コジマでした。