23 Eylül 2015 Çarşamba

C# Collatz Problemi Çözümü - C # Collatz Problem Solution

Sıfırdan büyük herhangi bir doğal sayıyı seçin. Sayı çift olduğu sürece ikiye bölün, sayı tek olduğu sürece ise sayıyı üç ile çarpıp bir ekleyin. Bu işlemi sayı bire ulaşana kadar devam ettirin. Collatz der ki: Birden büyük hangi sayıyı seçerseniz seçin, yukarıdaki işlem sonlu adımda bire ulaşır ve sonlanır.Bu önerme için şu ana kadar bulunmuş herhangi bir teorik ispat bulunmamaktadır.


Select any natural number greater than zero . As long as the split number is even, As long as the number is odd , three hit then add a number. And continue until one reaches this operation number . Collatz says: you choose the number of which is greater than one , the above procedure in finite steps , reaches one and ends. It has been found so far , there is no theoretical proof .


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace collatz
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            BackColor=Color.Maroon;
            button1.Text = "Hesapla";
            this.Text = "Collatz Problemi";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            int a;
            a = Convert.ToInt32(textBox1.Text);
            do
            {
                listBox1.Items.Add(a);
                if (a % 2 == 0)
                {
                    a = a / 2;
                }
                else
                {
                    a = (3 * a) + 1;
                }
            }
            while (a > 1);
            listBox1.Items.Add(a);
        }
    }
}

2 yorum:

  1. https://yadi.sk/d/bXdpSyay3UTqDm
    cozum icin ip uclari var.
    2019 baharina kadar, bu ipuclarindan cozumu buldum deyip, onay alan cikmaz ise tam cozumu aciklayacagim. beni tekrar yazmak zorunda birakmayin lutfen!

    YanıtlaSil
  2. https://yadi.sk/d/V_8M_rty3Un7zv
    linki tazeliyorum, eskisi yanlislikla silindi.

    ilk elli pozitif tam sayının karköklerini iki farklı 'kefeye' rastgele dağıtsak, dengeye yeterli en az sapma ile fizibil yaklaşan program yazdım.
    https://yadi.sk/d/fZFN5G7A3UWGB2
    ikiden bir milyona tam sayıların, kareköklerinden, küpköklerini çıkarıp, farkları iki kefeye rastgele dağıtılınca, en çok 1/10^11 sapma ile dengeye yaklaşma işini, eski model tek bir laptop ile en çok 10 saniyede çözmek mümkün! ama (10^6 )^4/16 işlem gereken 50 karekök programı kullanılamaz!
    soru:bir milyon ağırlık için gerekli analizi en çok 10 dakikada yapabilicek ve Qbasic program satırlarını yazabilecek makine, robot olabilir mi?
    cevap: evet, ama olmaması için elimden geleni yapacağım. böyle bir makine artan mega işsizlik, milyarlarca insanın katli gibi acı gerçeklerin ilk adımı olur. normalde insanlar için medeniyet ve konfor sağlaması beklenirdi. işin içinde gavur var ise maalesef tam tersi olur. google sürücücüz araba gibi, kalp sektesine karşı iyi fikir olan, ilkel, yarı otomatik, bahsi geçen analizi yapamayan makinelere destek veriyorum. daha ilerisininin sanki hiç geliştirilmemiş gibi olması için elimden geleni yapacağım, bi iznillah.

    YanıtlaSil