第75回
概要
今回は、大きな素数を求めてみます。と見せかけて、
タイマーを使って繰り返しの処理を軽くしてみようという試みです。
繰り返しの処理を再帰的に実現することで、1ステップごとにタイムアウトするか否か分岐出来るようになります。
タイムアウトすることで、ブラウザが応答なしになる時間を小さくすることが出来るはずです。
内容
(わかっている最大の素数-1)を初めに1とし、(わかっている最大の素数-1)*(わかっている最大の素数)+1
を計算します。これは素数な気がするのです。もしかしたら素数じゃないかもしれませんが。
以下の「開始」ボタンで計算を開始し、「停止」ボタンで一時停止します。
停止中に「開始」を押すと再開できます。計算中に「開始」ボタンを押さないでください。
(出来るだけ)停止中に「表示」ボタンを押すとその時点での(わかっている最大の素数-1)を表示します。
結果
計算してないよ
総括
感動した!(古い
今回の計算では、計算が進むにつれて1ステップあたりの処理が大きくなっていくので、
タイムアウトを1ステップごとにやっていても、その1ステップが重すぎて死ぬ。ということでした。
でも、計算中はブラウザは(多少重くはなりましたが)止まったりはしませんでした。
タイムアウトの長さも少し考えてみると面白いかもしれませんね。
6000桁以上の素数を求めることが出来たのでまあ満足としましょう。
追記
素数じゃねえしwwwwwwwwww
ホーム