Основи програмування на С ++ для початківців

Задача: гіпотеза Коллатц

гіпотеза Коллатц – це одна з невирішених проблем в математиці з 1937 року (гіпотеза Коллатц, Collatz гіпотеза), яку математики не можуть ні довести, ні спростувати. Гіпотеза полягає в тому, для будь-якого натурального числа n>1 послідовне застосування функції:

– приведе до числовому ряду, который, В підсумку (рано чи пізно) приведе до числа 1 (то есть, на кожному кроці перетворень для парних значень наступним кроком обчислюється n / 2, а для непарних – 3п + 1). Наприклад, для n = 3 це буде ряд перетворень: 3,10,5,16,8,4,2,1. Для деяких n ця послідовність чисел буде дуже коротким, але для деяких – дуже довгою…

Наше завдання не в тому, щоб вирішити задачу, яку всі математики світу не можуть вирішити 80 років, а в тому, щоб для будь-якого n побудувати ланцюжок числових для такого перетворення (те, що математики називають: числа-градини).

Конечно, как и раньше, одним із критеріїв якості рішення буде: код повинен бути записаний якомога коротше.

Рішення.

Як це виконується:

задача і рішення, гіпотеза коллатца, з ++, практика програмування

2 думки про "Задача: гіпотеза Коллатц

  1. #include
    using namespace std;

    int main() {
    setlocale(LC_ALL, “rus”);

    довго все = 1;

    cin >> всі;

    for (;;) {

    if (всі % 2 == 0) {
    все / = 2;
    cout << всі << endl;
    }
    else {
    все = (всі * 3) + 1;
    cout << всі << endl;
    }
    if (все == 1) {
    break;
    }
    }

    system("pause");
    return 0;
    }

  2. Микола, типу у тебе коротше?
    Гаразд про перевірку парності і розподіл на 2 розподілом, х з ним.
    Але ти б хоч висновок не дублював.

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *