スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
以後の更新内容の改善のために、是非ともご評価のほどよろしくお願いします!→

HSPで素数を求める際の実行時間で・・・

この前紹介した「HSPでの素数検出」のプログラム。【その記事はこちら。


最近思いついた(せこい)アイデアを使って、処理速度を速めることに成功しました。



HSPで素数の個数を求める(非効率版)

これは、前回紹介したものをアレンジしたものです。
2?100000(十万)までに存在する素数の個数を求めるものです。


次は、ちょっとだけ効率的にしたせこいプログラムです。

HSPで素数の個数を求める(ちょっと効率版)

まず、「2」は素数だと言うことは前提でプログラムしています。
新バージョンでは、配列変数に素数を代入していくので、初項(a(0))に2を入れます。
実質的に、繰り返しの処理では「3」から処理をしています。
そしてforの増分を2にすることで、奇数のみを処理するようになります。
なぜなら、素数の中で偶数なのは「2」だけで、あとの偶数は必ず2で割り切れます。
よって、奇数だけを判定するようにしました。
また、割る数も「1,2,3,4,5,・・・」とやっていては非効率的です。
例えば、2で割り切れないのに、4で割り切れるわけがありません。
この無駄な処理を省くべく、割る数は素数のみを用いました。
ある数nが素数でないとき、nは素数で割り切れるはずだからです。


説明がグダグダですがお許しください。

プログラム面でも改良面は多いと思います。

あくまでも参考としてご覧ください。



ちなみに、私のPCで実行した場合、
前者では、133秒かかったのに対し、
後者では、21秒で処理することが出来ました。


これは結構大きな差かなと感じます。




だからどうしたという話ですが・・・(汗)
以後の更新内容の改善のために、是非ともご評価のほどよろしくお願いします!→

テーマ : HSP /  ジャンル : コンピュータ

コメントの投稿

非公開コメント

カテゴリー
ようこそ!
Author: Torasuke
Profile: 地元大学の情報系学部に息をひそめる二回生。
   SA SW


ブログ内検索
最近のコメント
オススメ
京都の大学生のラボブログ
Python,Java,Objective-C,GAE,Macなど
Python独習中の大学生のブログ


ltzz.info
ここの管理者さんには謁見済み!(えっ

 Use OpenOffice.org
無補償でも良いなら、MSOfficeよりOpenOfficeで十分です。

Mozilla Firefox ブラウザ無料ダウンロード
当サイトは、Firefoxというブラウザで動作確認しています。私は以前、IE派でしたが、一度乗り換えて慣れてしまうと、Firefoxのほうが便利だということを実感しました。

是非よろしくお願いします。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。