Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Euler

Problem 51

Project EulerのProblem 51(日本語)です。 いろいろ考えてみましたが、全くよい解法を見出すことができず、「Y箱: Euler : Problem 51」を参考にさせていただきました。 051.rb

Problem 50

Project EulerのProblem 50(日本語)です。 例えば、以下の例で考えると、 prime_list = [2, 3, 5, 7, 11, 13, 17, 19] i = 0 # 配列の左端を初期値 j = 7 # 配列の右端を初期値jを減らしていき,初めてsum(prime_list[i]〜prime_list[j]までの和)が素数にな…

Problem 49

Project EulerのProblem 49(日本語)です。 等差数列の候補を変数first, second, thirdで表しています。firstの各桁を入れ替えたもの(second)が素数であるか調べ、もし素数なら、公差second - firstからthirdを生成し、素数かどうかを判定しています。 049.rb

Problem 48

Project EulerのProblem 48(日本語)です。 とても大きな数を扱うことになると思うので、以下で解けなかったら工夫しようと思いましたが計算してくれました。 048.rb

Problem 47

Project EulerのProblem 47(日本語)です。 047.rb

Problem 46

Project EulerのProblem 46(日本語)です。 046.rb

Problem 45

Project EulerのProblem 45(日本語)です。 Fiberを使って、三角数、五角数、六角数の数列を生成しています。三者が揃うまで、一番歩みの遅い数列を一歩ずつ前に進めていくことを繰り返しています。 045.rb

Problem 44

Project EulerのProblem 44(日本語)です。 ある数が五角数かどうかをpentagonal_number?メソッドで判別式を用いて判定しています。このとき、式(1),(3)ではOKですが、式(2)だとNGです。なぜ、式(2)だとうまく判定できないのでしょう? 1/2=0ですね。初歩的な…

Problem 43

Project EulerのProblem 43(日本語)です。 力づくの方法で解いています。 043.rb

Problem 42

Project EulerのProblem 42(日本語)です。単語の値をsumとすると、解の公式より と書ける。このとき、平方根を開いた数が整数であり、かつ、1+8*sumが奇数なら三角語と判定。 042.rb

Problem 41

Project EulerのProblem 41(日本語)です。 041.rb 最初、987654321からデクリメントしながら調べていきましたが、探索空間が広すぎて実行時間がかかりすぎました。今まで知らなかったのですが、数字の各桁の和が3の倍数だと、その数自身も3の倍数になるよう…

Problem 40

Project EulerのProblem 40(日本語)です。 040.rb

Problem 39

Project EulerのProblem 39(日本語)です。 039.rb

Problem 38

Project EulerのProblem 38(日本語)です。 038.rb 9と(1,2,3,4,5)の連結積が918273645なので、少なくともこれを超えそうな組合せ(以下)を試していきました。 (91..98) * [1, 2, 3, ...] (912..987) * [1, 2, 3, ...] (9123..9876) * [1, 2, 3, ...]

Problem 37

Project EulerのProblem 37(日本語)です。 037.rb

Problem 36

Project EulerのProblem 36(日本語)です。 036.rb

Problem 35

Project EulerのProblem 35(日本語)です。 035.rb

Problem 34

Project EulerのProblem 34(日本語)です。 034.rb 単純に上限まで各数字を試す方法です。実行時間は5分ほどでした。 034-1.rb 単純な方法では時間がかかりすぎるため、少し工夫をしました。 一度計算した値はメモし再計算の手間を省く 試す数字の上限が7桁な…

Problem 33

Project EulerのProblem 33(日本語)です。 033.rb

Problem 32

Project EulerのProblem 32(日本語)です。 掛けられる数を最大2桁、掛ける数を最大4桁とし、その組合せを調べていきました。 032.rb

Problem 31

Project EulerのProblem 31(日本語)です。 031.rb 参考サイト 僕のIT革命: Project Euler - Problem 31

Problem 30

Project EulerのProblem 30(日本語)です。 上限の決め方が難しい。本当は数学的に考えないといけないところですが、try and errorで解いてみました。 030.rb

Problem 29

Project EulerのProblem 29(日本語)です。 029.rb

Problem 28

Project EulerのProblem 28(日本語)です。以下のように書きだしてみると、数列の規則性が見えてきました。 5x5 => [[1], [3, 5, 7, 9], [13, 17, 21, 25]] 7x7 => [[1], [3, 5, 7, 9], [13, 17, 21, 25], [31, 37, 43, 49]] 9x9 => [[1], [3, 5, 7, 9], [13,…

Problem 27

Project EulerのProblem 27(日本語)です。 単純にである全てのケースについて調べているだけです。他によい方法があるのでしょうか? 027.rb

Problem 26

Project EulerのProblem 26(日本語)です。 recurring_cycle_lengthメソッドで循環節の長さを求めています。 026.rb

Problem 25

Project EulerのProblem 25(日本語)です。 フィボナッチ数列をFiberを使って生成してみました。 025.rb

Problem 24

Project EulerのProblem 24(日本語)です。 024.rb

Problem 23

Project EulerのProblem 23(日本語)です。 proper_divisorsメソッドで真の約数を求めています。ソース内の(1)が自分で書いた単純な方法、(2)はuehara_deltaさんのページで紹介されている解法です。 (1)を有効にして実行したところ約30秒、(2)を有効にし実行…

Problem 22

Project EulerのProblem 22(日本語)です。 022.rb