project euler problem-001を解いてみた…

Problem 1

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

natural number 自然数

bekow 未満 ~まで

和訳してみると…

10までの3と5の倍数の和は…3 +5+6+9=23

では…1000までの3と5の倍数の和は…どうなるでしょうか。大変ですね。でも、中学生レベルで解けちゃいます。計算してみましょう。Excelを使うと解けますよ。

~考え方~

(3の倍数の総和)+(5の倍数の総和)-(3と5の公倍数の総和)=(答え)

プログラミングしてみると…求める解をTOTALとします。

Set TOTAL to 0; ← ここの意味:そのTOTALの初期値を0とします。

for every number NUM from 1 to 999 do ← ここの意味:1~999まで次の処理をしなさい。

if NUM mod 3 = 0 or if NUM mod 5 = 0 then

← ここの意味:3または5で割り切れたら、その数を加算して、TOTALに入れます。

add NUM to TOTAL; ただし、3でも5でも割り切れたら、加算してはいけません。

output TOTAL     『or』の意味はそういう意味なのです。論理学を学べばすぐわかります。

もっと優しく言えば、上記の考え方の太字にある通り、3と5の公倍数は加算しなければいいのです。

別な言い方をすれば、15の倍数は加算できないということです。ダブってしまいますからね。

このProject Eulerは、プログラムを組む上で、どのようなアルゴリズム(手順、考え方)でより速く計算をすることができるかが大切なのです。

力まかせに解くこともできます。

① 基本に忠実に解くこと。

② 高校生の知識を使って解いてみること。

③ 大学生の知識を使って解いてみること。

そんな風にこのProject Eulerを利用してみると、面白いですよ。

広告

shimtake3 について

 中学の社会を教え始めました。  少し、今までやってきたことをまとめてみようか思っています。  練習問題をアップ、要点をまとめたものをアップしていきます。  たまに、私のエッセイもアップします。  私は、、、自然と本と映画をこよなく愛する一小市民です。 合言葉 : 地球のどこかであいましょう。 夢 : 南極でペンギンと一緒に隕石拾いをすること。 現実 : 中学校の先生です。しかも、『社会』です。 平成25年(2013)04月07日 更新
カテゴリー: Uncategorized パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中