Collatz problemi tüm tam sayıların 1’e indirebildiğini anlatan bir teoremdir.
Collatz problemi kuralları:
İfade olarak sayıya “x” diyelim
Bu sayı eğer çift ise “x/2” dir.
Bu sayı eğer tek ise “3x+1” dir.
Bu sanıya göre tüm sayılar, 1’e kolayca indirilebilir.Bu sayının büyüklüğüyle alakalı değildir.
Örneğin;
“x=4” diyelim.O halde; 4-2-1 olur.
“x=7” diyelim.O halde; 7-22-11-34-17-52-26-13-40-20-10-5-16-8-4-2-1 olur. Bu sayı kuramında 7’nin vardığı en büyük sayı 52’dir. şimdi bunu Collatz problemini C# ile nasıl çözülür ona bakalım . :)
aşağıdaki form tasarımını yapıp kodlarımız yazalım..
int sayi, enbuyuk=0, sayac=1; listBox1.Items.Clear(); sayi=Int16.Parse(textBox1.Text); do { listBox1.Items.Add(sayi); if (sayi % 2 == 0) { sayi = sayi / 2; } else { sayi = sayi * 3 + 1; } if (sayi > enbuyuk) enbuyuk = sayi; sayac++; } while (sayi > 1); listBox1.Items.Add("1"); textBox2.Text = sayac.ToString(); textBox3.Text = enbuyuk.ToString();