にせいの日記

「自分の好きなものってなんだろう?」という疑問を解決するために、気が向いた時に好きなことを書いてみて、「自分の好きなもの」をあぶり出そうと試みています。

素数大富豪素数問題に挑む -12日目- 配列を使う

※この記事は、数字のド素人であるにせーが、素数大富豪素数問題に挑む記録です。

 

素数大富豪素数問題に挑む -予告- 素数大富豪とは? - にせいの日記

素数大富豪素数問題に挑む -1日目- まずはやってみる - にせいの日記

素数大富豪素数問題に挑む -まだ1日目- 場合分けとRuby導入 - にせいの日記

素数大富豪素数問題に挑む -まだまだ1日目- 場合分けという底なし沼 - にせいの日記

素数大富豪素数問題に挑む -2日目- 方針転換 - にせいの日記

素数大富豪素数問題に挑む -3日目- Ruby活用 - にせいの日記

素数大富豪素数問題に挑む -4日目- いけるところまでいく - にせいの日記

素数大富豪素数問題に挑む -5日目- コツコツ8桁 - にせいの日記

素数大富豪素数問題に挑む -6日目- 9桁その1 - にせいの日記

素数大富豪素数問題に挑む -7日目- 間違いを発見! - にせいの日記

素数大富豪素数問題に挑む -8日目- 修正からの休眠 - にせいの日記

素数大富豪素数問題に挑む -9日目- 9桁できちゃった - にせいの日記

素数大富豪素数問題に挑む -10日目- 成果発表 - にせいの日記

素数大富豪素数問題に挑む -11日目- トランプで作れる数を考える - にせいの日記

 

〜前回までの進捗〜

  • 最大の数は72桁(実際に出せる数は71桁以下)
  • 使うカードの枚数は考えず、できる素数の桁数で分けて考える
  • 4桁以下の素数1,229個は全て表現可能
  • 5桁の素数は、8,357個が表現可能 
  • 6桁の素数は、68,703個が表現可能
  • 70桁くらいの素数判定は大変そうだ
  • 7桁の素数は、581,998個が表現可能
  • 8桁の素数は、5,029,944個が表現可能
  • 9桁の素数は、5,253,883個以上が表現可能

以上

 

<12日目> 2015年2月1日(日)

1月末に放送大学 計算事始めの単位認定試験を無事に乗り切ったので、久々に素数大富豪素数問題に取り組む日。

「1」のうまい数え方はまだ思いつかないので、今日は計算事始めで覚えた「配列」を使って、これまでの不器用なプログラムを書き直してみた。

 

配列の宣言の仕方や繰り返しの設定方法などはほぼ手探りで、実際にプログラムを回してみて引っかかったらGoogle先生に教えを請うて…を繰り返すこと約1時間。

7桁の場合で200行弱あったプログラムが、60行程度になった。

ついでにfor文やtimesの使い方、累乗(**)も覚えた。

結果が前に出した数字と合わなかった際に確認するため、リダイレクト(結果をファイルへ書き出す方法)も覚えた。

 

一番の大きな変更点は、これまでのプログラムでは検討する数字の範囲を具体的に入力し、その桁数に合わせて変数や判定文を増やすといった作業をしなければならなかったのが、今日作ったプログラムでは桁数nを入力するだけで自動的に最後まで計算してくれるようになった。

これでもう5桁から8桁までは自由自在☆

 

…と思いきや、なぜか8桁の結果が、以前のプログラムで出したものと1,400個ほど違ってしまった。

なぜだ。。

 

ここまでのまとめ

  • 配列を覚えました

 

8桁の結果の差については、リダイレクト等を使って近日中に解決予定です。

それにしても本当に、配列を覚えるだけでスクリプトが一気に簡潔になるものだなと。。

今回の作業で基本的な使い方はだいぶ習得したはずなので、今後はきちんと活用していきたいなと思います。

 

そして次回こそは10桁以上のカウントに着手したい!