Asal Sayilar v1.0

____________________________________________________________________

Geçenlerde İnternet’te dolaşırken ufak bir bilgisayar performans testi uygulamasına rastladım. Yaptığı 1 ile 250 bin arasındaki asal sayıları tespit ederek bu asal sayıları, bulduğu sayı adedini ve bu işlemin süresini ekranda göstermekti. Bu şekilde de 1 ile 250 bin arasındaki asal sayı bulma işlemini yaptığı süreyi performans göstergesi olarak alabiliyorsunuz. (Benim P4 2.8 bilgisayarımda sonuç 72 ile 52 saniye arasında değişiyordu. 🙂 ) Ben de bu testi cep telefonuna uyarlamak istedim ve yaptım. 🙂 Sonra da buna bir de test dışında kullanıcının kendi asal sayı kontrolü yapabilsin ve de farklı sayılar arasındaki asal sayı sayısını bulma fonksiyonunu ekledim; bu şekilde de Asal Sayilar v1.0 doğmuş oldu.

Asal Sayilar v1.0 (Ekran görüntüsü ingilizcedir)

Asal Sayilar v1.0 (Ekran görüntüsü İngilizcedir).

Asal Sayilar geliştirmeyi düşündüğüm bir proje değil şimdilik, zira çok faydalı bir şey olsa şimdiye kadar yapılırdı. 🙂 Sadece ara sıra kendi ihtiyaçlarım doğrultusunda bir gereklilik görürsem yeni birşeyler eklerim. Tabi uygulama performans testi dışında birinin bir işine yarayıp da (ki sanmıyorum) birşeyler eklememi falan isterse olabilir tabi.

Asal Sayilar daha çok sayıda cihazda kullanılabilmesi için Java ME platformunda MIDP 1.0 ve CLDC 1.0 gereksinimleriyle basit bir uygulama, annemin telefonunda bile çalışır. 🙂 Bellek olarak 512 KB altı ile denemedim ama 250 KB ile bile sorunsuz çalışacaktır eminim. Boyut olarak da 10 KB kadar bir boyutta ancak telefonunuzun sanal makine türüne göre bu 15 – 20 KB boyuta kadar çıkabilir (Aman çok da önemli 🙂 ).

Kullanım kısmını uygulamanın kendine yazdığım kullanım sayfasından alıyorum:

Asal Sayilar v1.0. Bu uygulama öncelikle bilgisayarda 1 ile 250 bin arasında asal sayı sayımı süresini ölçen bir performans testi uygulamasından fikirle yapıldı ancak daha sonra asal sayı kontrolü özelliği de eklendi. Cep telefonu için zaman alıcı olduğundan (416 MHz işlemcili PXA270 Toshiba Portégé G500’de 100 saniye.) test 1 ile 250 bin yerine 100 bin ile yapılıyor.

1 – Uygulamayı 999,999,999’dan küçük sayıların asal sayı olup olmadığını kontrol etmek için kullanabilirsiniz. Bunun için ‘Asallık kontrolü’ kutucuğuna bir sayı girip ‘Asallık kontrolü’ komutu verin. Sonuç aşağıda gösterilecektir.

2 – Uygulamayı belirli iki sayı arasındaki asal sayı sayısını bulmak için kullanabilirsiniz. Bunun için ‘Alt sınır’ ve ‘Üst sınır’ kutucuklarını doldurun ve ‘AS say’ komutu verin. Alt sınır olarak küçük sayıyı ve üst sınır olarak da büyük sayıyı girin. Eğer bir alt sınır girmezseniz alt sınır 1 kabul edilecektir.

3 – ‘Dur’ komutu o anda çalışan asal sayı sayma işlemini durdurur. Başlattığınız işlem tamamlanmadan diğer fonksiyonları kullanmak istiyorsanız önce işlemi durdurmanız gerekir.

4 – ‘Test’ komutu cihazınızın 1 ve 100,000 arasındaki asal sayı sayısını bulma hızını belirler. Sonuç milisaniye cinsindendir ve cihaza göre birkaç dakika alabilir. 250 bine kadar asal sayı bulma hızını test etmek isterseniz sadece ‘Üst sınır’ kutucuğuna 250000 yazıp ‘Girdiyi işle’ komutu verebilirsiniz. Yalnız bu işlem çok uzun sürecektir.

5 – Asal sayı bulma işleminde sonuçlardan başka işlem süresi de milisaniye cinsinden gösterilir.

Not: Aralarındaki farkı büyük olan iki sayı arasında asal sayı sayımı yapmak cihazınıza göre uzun sürebilir. Bu sebeple abartılı büyük sayılar yazmamanız iyi olur. Yoksa işlemciniz yavaşsa şarjınız işlem bitmeden daha önce bitebilir. 🙂

Sayma işlemini durdurmak için ‘Dur’ komutunu kullanabilirsiniz.

Ekran görüntüsünde uygulama dili İngilizce ancak telefonunuzun dil ayarı Türkçe ise dili Türkçe olacaktır. Eğer Türkçe değilse dil ayarı ne olursa olsun İngilizce olacaktır. Bunun için bir ayar koymadım.

Asal Sayılar v1.0 performans testi

Asal Sayilar v1.0 performans testi.

Performans testini 1 ile 100,000 arasında asal sayı saydırarak yapıyorum çünkü 1 ile 250 bin arasında asal sayı sayımını telefonda yapmak oldukça fazla zaman alabilir. Mesela 416 MHz Marvell PXA270 işlemcili Toshiba Portégé G500 telefonumda 100,000’e kadar test yaklaşık 17 – 18 saniye (17 – 18 bin milisaniye) sürerken 250,000 ile 100 saniye yani bir buçuk dakika sürüyor. 🙂 (Not: Burada P4 2.8 GHz işlemcinin PXA270 416 MHz işlemciden sayı sayma, toplama ve basitçe hesaplama konusunda iki kat daha iyi olduğunu öğreniyoruz. :D) Kendiniz isterseniz üst sınır kutucuğuna 250,000 yazarak 1 ile 250,000 arasında da test yapabilirsiniz. Ya da 999,999,999’dan küçük olduğu sürece istediğiniz sayıyla bunu yapabilirsiniz ama en hızlı telefonla bile bir saatten fazla sürecektir. 🙂

Performans testi sonuçları donanım ve yazılımına bağlı olarak cihazdan cihaza ve aynı cihazdaki farklı sanal makineler arasında bile değişecektir. JIT, AOT, Jazelle gibi hızlandırma kullanan sanal makineler ile kodu doğrudan çalıştıranlardan daha iyi olabilir. Ayrıca Symbian ve Windows Mobile gibi işletim sistemlerinde o işletim sistemine özel hazırlanmış benzer bir programda elde edilen sonuç bile değişik olabilir, çünkü Java programları işletim sistemi üzerindeki farklı bir platformda kodları birkaç defa daha fazla işlenerek çalışan programlardır. İsteyen sonuçlarını buraya yazabilir.

Asal Sayilar asal sayı kontrolü

Asal Sayilar asal sayı kontrolü.

İndirme:

Ana program dosyası:

İndir “Asal_Sayilar (JAR)”

Asal_Sayilar_v11.jar – 174 defa indirildi – 10,92 KB

Kurulum için gerekli olabilecek bilgi dosyası:

İndir “Asal_Sayilar (JAD)”

Asal_Sayilar.jad – 241 defa indirildi – 450,00 B

8 Yorum

  • Yazan: Murat, 17 Ağustos 2009 @ 12:56 am

    Ellerinize sağlık ferhad bey. Birilerinin işine yarayacaktır eminim. Fakat en basit anlamda cep telefonuna performans testi yapma fikri bile başlı başına bir uç noktadır benim gözümde. o yüzden sizi tekrar kutluyorum.

  • Yazan: FeRHaD, 17 Ağustos 2009 @ 2:19 am

    Teşekkürler.

  • Yazan: rıdvan, 18 Ekim 2009 @ 7:07 pm

    ben denedim daha önceden asal sayılara ulasmak için bulunan bir denklem var ve o denkleme göre ulastıgım asal sayılara bu program asal sayı demiyor belli ki bazı hataları var, 2 üzeri n eksi 1 bir (n = asal olmak şartı ile ) her sayı asaldır. mersenne asal sayılar denir ve formülüde budur 2^n-1

  • Yazan: FeRHaD, 19 Ekim 2009 @ 12:42 am

    Rıdvan bu sayılara örnek verebilir misin? Ona göre hatayı bulup düzeltmem gerekli.

  • Yazan: rıdvan, 31 Aralık 2009 @ 4:37 pm

    mesela 2 üzeri 23 eksi bir in marsenne teoremine göre asal sayıdır, 23 bir asal sayı oldugundan ötürü. 2^23-1 = 8388607

  • Yazan: rıdvan, 31 Aralık 2009 @ 4:43 pm

    pardon ben 1 ile 250 bin arası kısmını kacırmısım

  • Yazan: FeRHaD, 31 Aralık 2009 @ 8:05 pm

    Rıdvan 250 bin ile sınırlı değil, 999,999,999 ile sınırlı asal sayı sorguları. 1 ile bu sayı arasında istediğin sayıyı kontrol edebilirsin.
    Yukarıda örnekte verdiğin sayı ise 47’ye bölünebildiğinden asal sayı olmuyor, bölünmede 178481 sonucu çıkıyor.
    Bunun dışında benim matematiğim pek iyi değil, farklı bir bölümde okuyorum ve asal sayı problemlerinde de pek başarılı olduğum söylenemez. 😀

Bu yazıya bağlantılar

  1. F Tipi Blog - Made in Satisfaction » Asal Sayilar v1.1

Bu yazıdaki yorumlar için RSS beslemesi. Geri izleme URI

Yorum yaz