• 29-07-2010, 08:17:02
    #37
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Güzel çalışmalar yapmışsınız, tebrikler. Benimde eklemek istediğim bir kaç küçük bilgi var. Bundan sonraki çalışmalarınıza yön verebileceğini düşünüyorum.

    İlk yazdığınız algoritmanın order ı quadratic ve yaptığınız işlem brute force. Yani tek tek sayıları alıp çok da efficent olmayan bir algoritma ile deneme yaparak sonuçları elde ediyorsunuz. Yaptığınız başlangıç seviyesi birşey olmuş ama geliştirebileceğinize eminim. Örneğin kullandığınız 100000e kadar şeklinde çalışan döngünüzden belirli sayıları direk kontrol ettirmeyebilirsiniz, asal sayıları mesela. Gerçi bu işlem yine de quadraticliği değiştirmez.

    İkinci algoritmanızda ise asal sayıların kareköküyle ilişkili bir teoremi vardı onu kullanmışsınız ki hızlı olmasını da bu sağlamış. Asal sayılar ile bir kaç tane daha teorem olması lazım. Onları da algoritmanıza eklerseniz daha etkili sonuçlar elde edersiniz. Örnek vermem gerekirse, her 2 sayıdan bir tanesinin çift olduğunu ve dolayısıyla asal olmadığını bildiğimize göre deneme yapacağınız sayıları yarı yarıya azaltmış olursunuz. Aynı şekilde 3,5,7 gibi küçük olan asal sayıların katlarını da görmezden gelecek şekilde algoritmanızı geliştirebilirsiniz.


    Üçüncü algoritma ile ilgili olarak da sanırım sayıların karekökü ile yarısı arasında böleni olmayacağını kullarak yapmışsınız. Basit ve güzel olmuş.

    Asıl çalışmanız ile de ilgili olarak şunu söyleyebilirim. Eminim çok önceden bu denedikleriniz daha etkili şekillerde denendi. Bunu söyleme sebebim brute force olarak tabir ettiğimiz yöntem zaten her şekilde kullanılıyor. Mesela md5 gibi bir şifreleme algoritmasının çözümünü sadece brute force ile tek tek konrol ederek bulmaya çalışıyorlar. Çünkü ortada geri dönüşümü yapacak bir algoritma yok (ya da var ama bulunamadı henüz. Zaten şifrelemenin amacı da bunu bulamamaya yönelik.)

    Son olarak bu denemeleri PHP ile yaptığınızı belirtmişsiniz. Bence C gibi bir dille daha verimli çalışırsınız. Bu seviye PHP bilginiz ile zorlanmadan C kodu yazarsınız zaten.

    Bir de tavsiyem olacak. Üniversitenizde "Computing Theory" adında bir ders veriliyorsa ve seçmeli olarak bu dersi alabilecekseniz kaçırmayın derim. Yaptığınız çalışmalarda daha da ilerlersiniz.

    Edit: Konu hortlamış yeni farkettim. Belkide söylediklerimin hepsini fatal çoktan buldu ya da düşündü
  • 29-07-2010, 08:52:22
    #38
    hocam ben geçen dönem içerisinde php ile recursive fonksiyonlar kullanarak yöneylem araştırması problemleri çözüyordum. asal sayılardan fazlasına da kadir yani php
  • 29-07-2010, 10:36:39
    #39
    Hocam mükemmelsin. Gerçekten dahice şeyler bunlar. Tebrikler. Başarılarınızın devamını dilerim
  • 29-07-2010, 13:30:38
    #40
    Üyeliği durduruldu
    belliydi boyle oluca

    olum bizim işle uefa ilgilenioms esprisinden
  • 29-07-2010, 14:14:26
    #41
    Kimlik doğrulama veya yönetimden onay bekliyor.
    helal olsun valla tebrikler
  • 29-07-2010, 23:13:50
    #42
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Konuyu hortlatıyorum belki ama az önce fatal'a karşı büyük bir saygı uyandı içimde yazmadan edemedim
  • 14-01-2013, 03:40:55
    #43
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bugün bir blogda bu probleme denk geldim ve uğraşmanın zevkli olacağını düşündüm. Gerçekten de zevkli bir uğraşı oldu. Logatritma kullanınca işler kolaylaştı, velhasıl formül çıkarıp çok daha kısasını yazmak mümkün oldu.


    function mukemmelmi($sayi)
    {
    	$s=log($sayi)/log(2);
    	$n=round($s/2);
    	return ((pow(2, $n)*(pow(2, $n+1)-1))==$sayi);
    }
    Edit: Düzgün çalışması için formüle bir şart konması gerekiyor. Şu an vaktim yok ama kimse yapmazsa yarın yaparım.
  • 14-01-2013, 10:55:50
    #44
    Ben gururlandım. Okurken farklı oldum. Başarılar dilerim

    Derken aradan yıllar geçtiğini öğrenirim...
  • 14-01-2013, 12:47:06
    #45
    çok güzel çalışmalar, tebrik ediyorum