Collatz Problemi

Dolu tanesi sayıları olarak da bilinen problem, girilecek bir pozitif tamsayı ile başlayan bir sayı dizisi oluşturmaya dayanır. Dizinin her bir elemanı, bir önceki sayı kullanılarak şu kural dahilinde hesaplanır:
Eğer sayı çift ise bir sonraki sayı bu sayının yarısı, tek ise üç katının bir fazlası olacaktır. Böylece ilk sayısı verilen bir sayı dizisi oluşturulur.
Örneğin, ilk sayı 7 ise dizi şu şekilde oluşacaktır:
7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1,…
Ya da ilk sayı 21 ise,
21, 64, 32, 16, 8, 4, 2, 1, …
Görüldüğü gibi dizi 1 sayısına ulaştığı anda sonsuz döngüye girmektedir. Aslında başlangıç sayısı olarak ne girersek girelim dizi her zaman 1 sayısına ulaşmaktadır,
ama bu durum henüz matematiksel olarak kanıtlanamamıştır…

int i,s,max,j;
int[] sayi=new int[100];
private void button1_Click(object sender, EventArgs e)
{
s = Convert.ToInt32(textBox1.Text);
j=Convert.ToInt32(textBox2.Text);
listBox1.Items.Add(s.ToString());
max = s;
for(i=1; i<=j; i++) { if (s % 2 == 0) { s = s / 2; listBox1.Items.Add(s.ToString()); if (s > max) max = s; }

else // if (s%2==1)
{ s = (3 * s) + 1; listBox1.Items.Add(s.ToString()); if (s > max) max = s; }
}
textBox3.Text = max.ToString();
}

1.393 defa okundu.

One Response to Collatz Problemi

  1. İrfan Aydoğan dedi ki:

    COLLATZ SANISI ÇÖZÜMSÜZ

    GARİP AMA GERÇEK

    Collatz sanısı: m = tek sayı ve x= sıfırdan büyük pozitif tam sayı(1,2,3,4,….k) olmak koşulu ile (2^x)*m)-1 şeklinde yazılan herhangi bir n tek sayısı için bir işlem (3n+1)/2 olarak alındığında, (2^x)*m)-1=n şeklinde yazılan bir sayı için (x) defa (3n+1)/2 şeklinde işlem yapılmak zorunda kalınır. Çünkü (x-1) defa işlem tek sayı çıkar. (x) inci ilem yapıldığında sayı çift sayı olur. Ama yinede bu hesap gözünüzü korkutmasın. İşlem sonucu (2^x)*m)-1=n şeklinde yazılan bir tek sayı (3n+1)/2 şeklinde x. inci işlem yapıldığında (3^x)*m)-1 olarak çift sayı olur. Bu kendi bulduğum formül sayesinde collatz sanısı için çözümün olmadığı bir sayının olabileceğini ispatlıyorum.
    Collatz sanısı çözümsüz
    ispat: test edeceğimiz tek sayıyı (2^x)*m)-1=n olacak halde yazdığımızda her tek sayı için uygulanan (3n+1)/2 işlemi ile ilk çift sayı (x) inci işlemin sonunda oluşur x= sonsuz olduğunda ise çözüm yoktur. Çünkü işlem sonsuz eksi bir defa tek sayı çıkacaktır. Sonsuzuncu işlem yapılsa idi, çift sayı çıkacak idi. ayrıca sonsuz eksi bir ifadesini veren sayı yoktur. Ama sonlu bir sayıyı ifade etmek amacı ile bu terim kullanılır.

    Örnek verecek olursak:
    (2^x)*m)-1=n denkleminde
    x=3 ve m=7 olarak alacak olursak
    (2^3)*7)-1 = n
    (8)*7) -1= n
    (56)-1=n olur
    n=55olur

    Normal hesaplama ile bu işlemi yaparsak işlemin x defa yapıldığını göreceksiniz. (x)=3 olduğuna göre 3 defa işlem yapacağız. yani kısaca (x) sayısı herhangi bir çift sayıyı tek sayı çıkana kadar ardarda iki ile böldüğümüzde kaç defa 2 ile bölüne bildiğini gösterir.
    Biz test edeceğimiz tek sayıya 1 eklediğimizde sayı çift sayı olur. Bu çift sayıyı (2^x)*m ) haline getirip 1 çıkarırsak oluşan sayı yine bizim test yaptığımız tek sayı olur. Son hali ile test sayımız (2^x)*m)-1=n şeklinde olur. Şimdi örneğimizi bu halde yazalım.
    55+1=56 Bu sayının kaç defa iki ile tam olarak bölündüğünü ve en son 2 ile bölümünden sonra çıkan tek sayıyı bulalım. Yani (x) ve (m) sayılarımızı bulalım. Test sayımız zaten belli, yani n=55
    55+1=56 dan

    1) 56/2=28
    2) 28/2=14
    3) 14/2=7
    x=3 ve m=7
    tek sayımız son hali ile (2^3)*7)-1=55 oldu tek sayı için uyguladığımız collatz işlemi (3n+1)/2 idi
    1) işlem (55*3+1)/2=83
    2) işlem (83*3+1)/2=125
    3) işlem (125*3+1)/2=188

    (x) Defa (3n+1)/2 şeklinde yapılan ardışık işlemlerin sonunda oluşan çift sayı (3^x)*m)-1 olacaktır.
    Tek sayımız (2^x)*m)-1=n idi. Değerler yerine konulduğunda (2^3)*7)-1=55 şeklinde olur. Yine aynı şekilde değerleri ilk çift sayının kaç olduğunu bulmak için formülümüzde yerine koyarsak
    (3^x)*m)-1 = (3^3)*7)-1 olur
    (3^3)*7)-1= (27)*7)-1=188 sonuç bu şekilde de bulunur

    Bu formül (2^x)*m)-1=n haline getirilmiş bütün tek sayılar için geçerlidir. Her tek sayı da bu halde yazılır zaten.

    İrfan Aydoğan
    doktor0906@hotmail.com

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Powered by WordPress | Designed by: credit repair | Thanks to st louis web design, essay writing and fire glass
c# örnekleri , csharp örnekleri , c# örnek , C# Örnekleri , örnekleri c# , C# ÖRNEKLERİ
BTT Sınavları

C# Uygulamaları

Müdür Yardımcılığı Sınavına Hazırlık Sayfası

Müdür Yardımcılığı Çalışma Notları

C# Uygulamaları

Yazılı Soruları Php Dersleri Bilişim Teknolojileri Alanı Yazılı Soruları C# Dersleri C# Örnekleri