素数計算機(高速化)ver3.4
Game Introduction
従来のプログラムからの改善点 ①偶数を最初から省いた。 ②割る数はその前にわかっている素数のみにした。 ③割る数は調べる数の平方根以下にした。 ④2,3,5,7を最初から一覧に追加。(7追加で若干改善) ⑤一の位が5の数を最初から省くようにした。 (5の倍数だから。1.2倍高速化の大改善点。) ⑥再帰の動作を高速化 (合成数判明で即次へ。2倍以上高速化の大改善。) ⑦2で割るのをやめた(プログラムのミス発見) (でもそんなに意味なかった。2%高速化) ⑧リストの非表示可能(描画で遅れないようにする。) (結構意味あった。約1.1倍高速化の大改善。) ⑨「メッセージを送って待つ」を使用 (このブロックやっと理解した。3%弱高速化)
How To Play
スペースでリセット、nで100秒、tで10秒計測。ターボ推奨。 i/hでリストの表示/非表示切り替え(デフォは表示) mで変数「表示」を動かす。 リストは長さ200000で自動リセットします。 僕の(i3,win10)で100秒で1344503、10秒だと222151。 Scratchの中で1番高速(なはず)だよ。 Scratch2.0に変換して、オフラインエディターでやったらちょっと遅かった。リスト制限ないから2.0のほうが良(ry。 【更新履歴】 v1.0 公開(素数で割る、偶数は省く) v1.1 2,3,5,7追加 v1.2 割る数を平方根以下の素数のみに 100秒計測:469069(i3,win10) v2.0 一の位が5の数を省く 100秒計測:568799(i3,win10) v2.1 再帰の動きを若干修正 100秒計測:570927(i3,win10) v3.0 再起を更に修正、合成数とわかったら即次へ 100秒計測:1155719(i3,win10) v3.1 2で割るのをやめた(プログラムのミスに気づいた) 100秒計測:1170947(i3,win10) v3.2 リストをデフォで非表示にした。(描画量を削減) 100秒計測:1306531(i3,win10,非表示) v3.3 リストをデフォで表示にした。(使い辛かった) v3.4 https://scratch.mit.edu/projects/381529959/ こちらを参考に「メッセージを送って待つ」を 活用。 100秒計測:1344503(i3,win10,非表示)
Author
ttnr
Category
Game Information
Game Popularity
214 views
Collection Count
4 favorites