Ismer valaki prím kereséssel kapcsolatos számítási időket?
Azzal szórakozom most, hogy minél gyorsabb prím kereső algoritmust írjak. Jelenleg 1.288 másodperc alatt találja meg a programom a tízmilliónál kisebb prím számokat. Az jó időnek számít? Mennyivel gyorsabbak a legjobb algoritmusok?
E5200 2.50 GHz procim van és 1 magon fut a progi.
Új mérések:
1 millióig: 0,069 mp
10 millióig: 1,309 mp
100 millióig: 28,337 mp
Nem túl gyors. Most csináltam egyet, ami 100 Millióig 2 és fél másodperc alatt találja meg. Egy ismert és elég gyorsnak bizonyuló algoritmust használtam, tessék (C#):
public static void SetPrimesSieve(int Range)
{
Primes = new List<uint>();
Primes.Add(2);
int Half = (Range - 1) >> 1;
BitArray Nums = new BitArray(Half, false);
int Sqrt = (int)Math.Sqrt(Range);
for (int i = 3, j; i <= Sqrt; )
{
for (j = ((i * i) >> 1) - 1; j < Half; j += i)
Nums[j] = true;
do
i += 2;
while (i <= Sqrt && Nums[(i >> 1) - 1]);
}
for (int i = 0; i < Half; ++i)
if (!Nums[i])
Primes.Add((uint)(i << 1) + 3);
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!