Slide 1

Slide 1 text

Project Euler͔Βੜ·Εͨ ϫϯϥΠφʔͨͪ Shu OGAWARA (@expajp) TokyuRubyձٞ12 2018/07/29 Sun.

Slide 2

Slide 2 text

ࣗݾ঺հ • Shu OGAWARA (@expajp) – Ruby/Railsྺ 1೥΄Ͳ – ग़਎ɿௗऔɺֶੜ࣌୅ɿਆށ – ϦϯΧʔζ – झຯͰ߹এஂʹॴଐ 1

Slide 3

Slide 3 text

Project Eulerͬͯ஌ͬͯ·͔͢ʁ 2

Slide 4

Slide 4 text

ϨΦϯϋϧτɾΦΠϥʔ (1707-1783) • εΠεͷ਺ֶऀ • ࿦จࣥච଎౓͸800ϖʔδ/೥ • ۀ੷͕๲େ͗ͯ͢ 100೥ܦͬͯ΋શू͕ະ׬ 3

Slide 5

Slide 5 text

4

Slide 6

Slide 6 text

Project Euler • ίϯϐϡʔλͰղ͘਺ֶͷ໰୊ू – ϓϩίϯతͳ໰୊ – ͚ͩͲͬ͘͡Γղ͚Δ 5

Slide 7

Slide 7 text

Project Euler • RubyͰͷ௅ઓऀ͸൪໨ʹଟ͍ – Python, C/C++, Java, C#, Haskellʹଓ͍ͯRuby – ϓϩϑΟʔϧʹݴޠΛॻ͍͍ͯΔਓͷ౷ܭ 6

Slide 8

Slide 8 text

7 ൃදऀ͸234Ґʢ95໰ղ౴ʣ

Slide 9

Slide 9 text

8 ൃදऀ͸234Ґʢ95໰ղ౴ʣ

Slide 10

Slide 10 text

ϫϯϥΠφʔ • 1ߦͰॻ͘ϓϩάϥϜͷ͜ͱ – ʢࣗ෼ͷதͰ͸ʣϥΠϒϥϦಡࠐ͸ؚ·ͳ͍ • Rubyͷ୉ޣຯ • ͨͱ͑͹FizzBuzz 9

Slide 11

Slide 11 text

͜ͷൃදͷझࢫ • Project EulerΛ100໰ۙ͘·Ͱղ͍͖ͯͨͷ ͰɺϫϯϥΠφʔͰղ͚Δ໰୊ΛνϣΠε ΈΜͳʹղ͍ͯ΋Β͏ – ղ౴ྫΛ঺հ 10

Slide 12

Slide 12 text

͜ͷൃදͷझࢫ • Project EulerΛ100໰ۙ͘·Ͱղ͍͖ͯͨͷ ͰɺϫϯϥΠφʔͰղ͚Δ໰୊ΛνϣΠε ΈΜͳʹղ͍ͯ΋Β͏ – ղ౴ྫΛ঺հ 11 – ΈΜͳʹղ͍ͯ΋Β͏

Slide 13

Slide 13 text

ਲͬ෷͏! લʹΞλϚ࢖͍·͠ΐ͏ʂ 12

Slide 14

Slide 14 text

Please Get Ready 13 $ irb OR $ pry $ rib OR

Slide 15

Slide 15 text

Are You Ready ? 14

Slide 16

Slide 16 text

ୈ̍໰ (30sec. Hint: 15sec.) 1, 2, …, 10 ʹ͍ͭͯ, ೋ৐ͷ࿨͸, 12 + 22 + ... + 102 = 385 ࿨ͷೋ৐͸, (1 + 2 + ... + 10)2 = 3025 ࠩ͸ 3025 - 385 = 2640 ͱͳΔ. ಉ༷ʹͯ͠, 1, 2, …, 100ʹ͍ͭͯʮೋ৐ͷ࿨ʯͱʮ࿨ͷೋ৐ʯ ͷࠩΛٻΊΑ. ग़యɿProject Euler – Problem 6 15

Slide 17

Slide 17 text

ୈ̍໰ (30sec. Hint: 15sec.) 1, 2, …, 10 ʹ͍ͭͯ, ೋ৐ͷ࿨͸, 12 + 22 + ... + 102 = 385 ࿨ͷೋ৐͸, (1 + 2 + ... + 10)2 = 3025 ࠩ͸ 3025 - 385 = 2640 ͱͳΔ. ಉ༷ʹͯ͠, 1, 2, …, 100ʹ͍ͭͯʮೋ৐ͷ࿨ʯͱʮ࿨ͷೋ৐ʯ ͷࠩΛٻΊΑ. ग़యɿProject Euler – Problem 6 16 ώϯτɿRuby 2.4Ҏ߱ͳΒ Array#sum ͕࢖͑·͢

Slide 18

Slide 18 text

ղ౴ྫ 17

Slide 19

Slide 19 text

ୈ̎໰ (1min. Hint: 30sec.) 20ੈلʢ1901೥1݄1೔͔Β2000೥12݄31೔ʣதʹ ݄ͷॳΊ͕೔༵೔ʹͳΔͷ͸Կճ͋Δ͔ ͳ͓, ೥1݄1೔͸݄༵೔Ͱ͋Γ, 20ੈلʹ͓͍ͯ4ͷഒ਺ͷ೥͸ඞͣ͏Δ͏೥Ͱ͋Δ. ग़య: Project Euler - Problem 19 18

Slide 20

Slide 20 text

ୈ̎໰ (1min. Hint: 30sec.) 20ੈلʢ1901೥1݄1೔͔Β2000೥12݄31೔ʣதʹ ݄ͷॳΊ͕೔༵೔ʹͳΔͷ͸Կճ͋Δ͔ ͳ͓, ೥1݄1೔͸݄༵೔Ͱ͋Γ, 20ੈلʹ͓͍ͯ4ͷഒ਺ͷ೥͸ඞͣ͏Δ͏೥Ͱ͋Δ. ग़య: Project Euler - Problem 19 19 ώϯτɿϥΠϒϥϦಡࠐ͸ϫϯϥΠφʔʹؚΈ·ͤΜ

Slide 21

Slide 21 text

ղ౴ྫ 20  DateϥΠϒϥϦͷಡࠐ͕ඞཁ

Slide 22

Slide 22 text

࣮͸ɺϥΠϒϥϦͳ͠Ͱ΍Δํ๏΋͋Δ 21

Slide 23

Slide 23 text

ղ౴ྫ2 22

Slide 24

Slide 24 text

ղઆ͸ͦͷ͏ͪϒϩάʹͰ΋ॻ͖·͢! 23

Slide 25

Slide 25 text

·ͱΊ • 1SPKFDU &VMFS͸ͨͷ͍͠ • ϫϯϥΠφʔͰղ͘ͱ΋ͬͱͨͷ͍͠ • ࢓ࣄͷ߹ؒʹΞλϚͷମૢ͸͍͔͕Ͱ͔͢ 24

Slide 26

Slide 26 text

Thank you for Listening!! 25 Ruby Logo(https://www.ruby-lang.org/ja/ ) CC BY-NC-SA 2.5