Şimdi Ara

En uzun collatz Döngüsünü bulma. cevap belli ama nasıl yapıcam ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
142
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Collatz döngüsü
    {
    n-> n/2 (Eğer n, çift ise)
    n-> 3n+1 (Eğer n, tek ise)
    }
    13 sayısını bu kurala uyguladığımızda

    13->40->20->10->5->16->8->4->2->1

    Dizilimini elde ediliyor.

    1 ile sonuçlanan bu dizilime Collatz Dizilimi diyoruz.

    Soru
    Bir milyonun altındaki hangi sayı, en uzun dizilimi vermektedir?


    Çözüm

    Bu soru için direkt kodlamayı vermeyeceğim. Esasında basit bir soru, kodlamadan ziyade çözüm yöntemini bulmanın önemli olduğunu düşünüyorum.

    Bunu deneme yanılma ile bulmaya çalıştığınızda epey bir işlem gücü isteyecektir.

    Burada yakalamamız gereken yaklaşım, bazı sayılar için daha önceden yapılan dizilimi tekrar yaptığımız.

    Yani 1'den 10'a kadar olan dizilimi bulduk diyelim. 13 sayısının dizilimine baktığımızda görüyoruz ki:13->40->20->10->5->16->8->4->2->1

    Zaten 10 için yaptığımız dizilimi barındırıyor. Öyleyse daha fazla ileri gitmeye gerek yok. Bunların her birini kaydedip, denetimini yaptığımızda işlem gücünden hayli kazanç elde etmiş oluyoruz.

    Cevap : 837799 sayısı 525 uzunluğunda dizilim oluşturur.

    ******************************************************************
    Benim ödevim bu. Cevabı buldum ama yapamıyorum. Collatz döngüsü oluşturdum. 130 Bin e kadar falan çalışıyor.Benden istenen 1 milyon.Daha önceki sayıları nasıl kaydedicem. yani ben bu 10 u nasıl kaydedicem ve nasıl kullanıcam. yardım eder misiniz ?
    Dil == C;







  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.