プレイ日記
ひたすら、素数を数えあげていただけのプログラムを進化させて、3DSの処理速度を少し分かりやすく(?)したようなプログラムになりました。 五桁の素数が出てくるまで10分弱掛かりました。
3そうだね
プレイ済み
返信[1]
親投稿
ぴくと kanau1203
私は25秒で5桁の素数を発見しました(ドヤッ ※勿論旧3DSです
0そうだね
プレイ済み
返信[2]
親投稿
す…すごい! やっぱり、全ての整数をその数から1ずつ引いていった数で割っているから、時間がかかるな…
0そうだね
プレイ済み
返信[3]
親投稿
素数か否か調べる対象の数から偶数を除外したら、5分程度になりました!
0そうだね
プレイ済み
返信[4]
親投稿
さらに、割る数から偶数を除いたら、約2分半
0そうだね
プレイ済み
返信[5]
親投稿
Σ εαρ Malfoy-Malfoy
48フレームで5桁の1007までの素数を求めることができました。旧3DSです。
0そうだね
プレイ済み
返信[6]
親投稿
まさかの、1秒未満!?
1そうだね
プレイ済み
返信[7]
親投稿
ぴくと kanau1203
人知を越えたお
0そうだね
プレイ済み
返信[8]
親投稿
どんどん最適化されて行く………
0そうだね
プレイ済み
返信[9]
親投稿
MIKI ifconfig
n=2^20-1=1048575 以下の素数の個数を表示します。 new3dsで290frames程度。 「エラトステネス」のふるいというアルゴリズムです。
0そうだね
プレイ済み
返信[10]
親投稿
MIKI ifconfig
10 行めの ' を消すと、1048575 以下の全ての素数を表示します。
0そうだね
プレイ済み
返信[11]
親投稿
MIKI ifconfig
配列 p[] には n 未満の全ての奇素数が入っているので、奇数 x (x>=3) が素数かどうか調べるには (1)x<n の場合、p[i]<=xの範囲で (1a) p[i]==x となる p[i] が存在すれば x は素数 (1b) そうでなければ x は合成数 (2)x>=mの場合、 p[i]<=sqr(x)の範囲で (2a) x mod p[i] == 0 となる p[i] が存在すれば x は合成数 (2b) そうでなければ x は素数 となります。
0そうだね
プレイ済み
返信[12]
親投稿
Oskar oskar_liebig
みきさん改めMIKIさんのを旧3DSで実行したら1055~1065フレーム(4回実行)でした。 さらに、1048576個も要素取れるんなら T[(I-3)>>1] とか T[(K-3)>>1] とかケチケチしないで T[I], T[K] でいいだろ、と変えると、991~1001フレーム(4回実行)と少しだけ速くなりました。
0そうだね
プレイ済み
返信[13]
親投稿
Oskar oskar_liebig
お題に合わせてちろっといじって、人のふんどし(はしたない。失礼!)で相撲をとってみたところ……旧3DSで8フレームでした。 まさに宇宙人知外。
0そうだね
プレイ済み