今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル Re: 素数表示、カウント SOSU5.EXE 更新
投稿日: 2024/02/29(木) 18:45
投稿者konno
 番 号 11123    11120 番 konno さんへのコメント

SOSU5 の速度アップとバグ取りですが、他の素数計算プログラムを参考にしました。
旧版は、一桁の素数を決め打ちでやっていました。

for i!=2 to 10
  if i!=2 then gosub print1:co!=co!+1:co1%(co!)=i!
  if i!=3 then gosub print1:co!=co!+1:co1%(co!)=i!
  if i!=5 then gosub print1:co!=co!+1:co1%(co!)=i!
  if i!=7 then gosub print1:co!=co!+1:co1%(co!)=i!
next i!

これを全部コメントにして、2だけ決め打ちにしました。
さらに、偶数チェックを FOR STEP 2 で出来ることがわかり、以下のように

i!=2:gosub print1 :co!=co!+1:co1%(co!)=i!		'★ 2は素数に決め打ち
a!=0
for i!=3 to no!-1 step 2				'★ 偶数をスキップ
loop1:
'  no1$=str$(i!)					'★ FOR steo 2 の
'  le=len(no1$)						'★スキップにより
'  a!=val(right$(no1$,1))				'★この4行が
'  b!=int (a!/2):if b!=a!/2 then i!=i!+1:goto loop1	'★要らなくなった
  gosub loop2		'
next i!

これで少し速度アップ出来たようです。

SOSU4.EXE
Number = 50000 	  0: 0'34 	Prime Number = 5133 
SOSU5.EXE
Number.50000	  0: 0'32 	Prime Number = 5133 

うーん、誤差範囲かな。(^^;
あとは配列の見直しで、10万までだったのを30万まで拡大出来ました。
速度的にも

Number.300000	  0:12'20   Prime Number = 25997 

12分もかかるので、この方式はこの辺が限界ですね。(^^;
さて、次はもっと速い別のアルゴリズムにしましょう。

    - No.11123 一括表示へ   -   コメント元:11120 一括表示へ  -    [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
11097.素数を表示、カウントするテスト - konno 24/02/20-23:45
  ┣11115.Re: 素数を表示、カウントするテスト - としき 24/02/26-13:22
  ┃┗11117.Re^2: 素数を表示、カウントするテスト - konno 24/02/26-22:12
  ┃ ┗11119.Re^3: 素数を表示、カウントするテスト - としき 24/02/27-23:55
  ┃  ┗11121.Re^4: 素数を表示、カウントするテスト - konno 24/02/28-01:23
  ┃   ┗11122.Re^5: 素数を表示、カウントするテスト - としき 24/02/28-17:45
  ┣11120.素数表示、カウント SOSU5.EXE 更新 - konno 24/02/28-00:47
  ┃┣11123.Re: 素数表示、カウント SOSU5.EXE 更新 - konno 24/02/29-18:45
  ┃┗11126.Re: 素数表示、カウント SOSU5.EXE 更新 - としき 24/03/01-01:28
  ┃ ┗11127.Re^2: 素数表示、カウント SOSU5.EXE 更新 - konno 24/03/01-23:46
  ┗11128.SOSU6 素数を表示、カウントするテスト6 - konno 24/03/02-00:03
   ┣11129.Re: SOSU6 素数を表示、カウントするテスト6 - konno 24/03/03-16:48
   ┗11131.Re: SOSU6 素数を表示、カウントするテスト6 - としき 24/03/04-23:23
    ┗11133.Re^2: SOSU6 素数を表示、カウントするテスト6 - konno 24/03/05-00:03
     ┗11138.Re^3: SOSU6 素数を表示、カウントするテスト6 - としき 24/03/05-14:12
      ┗11141.Re^4: SOSU6 素数を表示、カウントするテスト6 - konno 24/03/05-16:55
       ┗11143.Re^5: SOSU6 素数を表示、カウントするテスト6 - としき 24/03/05-17:58
        ┗11145.Re^6: SOSU6 素数を表示、カウントするテスト6 - konno 24/03/05-23:15

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]