Kezdőoldal » Számítástechnika » Programozás » Ismer valaki prím kereséssel...

Ismer valaki prím kereséssel kapcsolatos számítási időket?

Figyelt kérdés

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.



2014. máj. 4. 04:49
 1/5 A kérdező kommentje:

Új mérések:

1 millióig: 0,069 mp

10 millióig: 1,309 mp

100 millióig: 28,337 mp

2014. máj. 4. 04:55
 2/5 anonim ***** válasza:

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);

}

2014. máj. 4. 09:20
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
(Most kipróbáltam 1 milliárddal, 27 mp)
2014. máj. 4. 09:23
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Ha egész pontosan _valameddig_ szeretnéd megtalálni őket, akkor a szita sokkal gyorsabb (még 1 milliárdig is)
2014. máj. 4. 11:39
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Köszi a válaszokat! :)
2014. máj. 4. 12:58

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!