Java Thread Asal Sayı Sayma
-
0 dan 1000000 (bir milyon) ' a kadar asal sayıları 10 sn içinde bulabilecek iş parçacığınızı nasıl yazabilirim ?
-
Asal sayıları hızlı bulan bilindik algoritmalar var.
Makinende 4 çekirdek olduğunu varsayarsak 4 thread'den fazlasının çok fark yaratacağını sanmıyorum. İşlemcinde HT,vs gibi benzer özellikler varsa thread sayısını artırabilirsin. Hatta deneme yanılmayla en optimum thread sayısını da bulabilirsin
Her bir threade 250'binlik sayı aralığı koyduğun 4 thread'i şu algoritmayla çalıştırırsan güzel bişeler çıkar
http://en.wikipedia.org/wiki/Sieve_of_Atkin
-
normalde ne kadar sürüyor? 2,3,5,7 ile modulus uygulayacaksın kaç saniye sürüyorsa 10 saniyeye düşürene kadar böl 1.000.000 u thread sayısına
edit: okumuş adamın hali bir başka oluyor
KizilS tarafından 11/May/15 14:16 tarihinde düzenlenmiştir -
MaviEkran bunu yazdı
Asal sayıları hızlı bulan bilindik algoritmalar var.
Makinende 4 çekirdek olduğunu varsayarsak 4 thread'den fazlasının çok fark yaratacağını sanmıyorum. İşlemcinde HT,vs gibi benzer özellikler varsa thread sayısını artırabilirsin. Hatta deneme yanılmayla en optimum thread sayısını da bulabilirsin
Her bir threade 250'binlik sayı aralığı koyduğun 4 thread'i şu algoritmayla çalıştırırsan güzel bişeler çıkar
http://en.wikipedia.org/wiki/Sieve_of_Atkin
2dk dan fazla sürdü :d
-
-
bulmak istediğin sayı aralığını, hesaplama yapabileceğin thread sayısına bölerek iş yaptırsan hocam?
mesela 0 ila 100.000 aralığındaki asal sayıları bulacaksın. 0 ile 25.000 arasını thread 1 de
25000 ile 50000 arasını thread 2 de
50000 75000 thread 3 de
İşte kaç tane mantıksal thread destekleniyorsa.
DrKill tarafından 11/May/15 20:02 tarihinde düzenlenmiştir -
DrKill bunu yazdı
bulmak istediğin sayı aralığını, hesaplama yapabileceğin thread sayısına bölerek iş yaptırsan hocam?
mesela 0 ila 100.000 aralığındaki asal sayıları bulacaksın. 0 ile 25.000 arasını thread 1 de
25000 ile 50000 arasını thread 2 de
50000 75000 thread 3 de
İşte kaç tane mantıksal thread destekleniyorsa.
-
senkron calismak zorunda degil hicbiri o yuzden birden cok threadi asenkron olarak cagirabilirsin. derste gordugumuz kitabi tavsiye edeyim. cok kapsamli bir kitap ama cidden multi-threadin icin yardimci olabilir. Cunku bir suru hesap etmen gereken sey olabilir (belki bu ornekte degil ama lock lar, atomic keyword, synchronized, thread safety, shared object v.s)
http://www.e-reading.club/bookreader.php/134637/Herlihy_-_The_art_of_multiprocessor_programming.pdf
bu kitap da hosuma gitti
http://www.researchgate.net/publication/220689547_Java_Concurrency_in_Practice