2014年04月08日

Project Eulerに挑戦

開発部だより 第233回



新年度がスタートしました

今年も新入社員が入社し、研修が始まっております。

番人もいよいよ3年目、駿台のシステム部門として技術者として、また教育者として成長していかなければなりません手(グー)

プログラミング力向上の一環として始めた「Project Euler」についてご紹介したいと思います
(問題1がネタバレとなりますがご了承ください。)


Project Eulerとはひらめき

数学やプログラミングなどに興味を持つ大人や学生が主な利用者であり、プログラミングによる一連の計算問題の解決を目的としたウェブサイトです
400以上の問題の他に毎週末毎に1問ずつ増えており、様々な難問が用意されているが、 一般的なスペックのパソコンで効率的なアルゴリズムを用いれば、いずれも1分未満で解けます。

今回はProblems 1を紹介いたします。

Problems 1

Multiples of 3 and 5

(原文)
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.

(訳)
10未満の自然数で3または5の倍数は3,5,6,9です。これらの倍数の和は23になります。1,000未満で3または5の倍数の和を求めなさい。

数学的回答
自然数1〜999のうち3,5,15の倍数の個数は
3の倍数:999÷3=333   333個
5の倍数:999÷5=199.8  199個
5の倍数:999÷15=66.6   66個

よって求める解は
数列.png

狽利用しなければ小中学生でも解ける問題です

VB で解いてみました


  Public Function Prob1()
    Dim i As Integer = 999
    Dim s As Integer
    Dim sf As Integer

    While i > 0
      If (i Mod 3 = 0) Or (i Mod 5 = 0) Then
        System.Console.WriteLine(i)
        s = i
        sf = sf + s
      End If
      i = i - 1
    End While
    System.Console.WriteLine(vbCrLf & "Sum: " & sf)
    Return 0
  End Function

恒例の合同式の利用です手(チョキ)

ほかにもいろいろなロジックが考えられますので皆様もチャレンジして下さいひらめき

数学であれプログラミングであれ公式や理論の本質を理解しなければ意味がありません

駿台予備学校では「学問の本質を学ぶ」という創立時からの教育方針のもと、小手先の受験テクニックではない「本物の学力」を養成します。

同様に私たちSATTもプログラミングの本質を学び、技術者として、教育者として皆様にシステムのご提案をさせていただいております。
ぜひ教育ICTのご相談はSATTにお任せください手(グー)

S Sundai
A Advanced
T Teaching
T Technology

エスエイティー株式会社
http://satt.jp/
posted by 番人 at 16:48
開発部だより | コメント(0) | トラックバック(0)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。