3n 1: простейшая математическая задача

Задача "3n + 1" (или "Проблема Коллатца" или "Уорловская последовательность") является математической головоломкой, которая состоит в том, чтобы начать с положительного целого числа n и последовательно применять следующие преобразования:

И повторять эти операции до тех пор, пока n не станет равным единице.

Например, если мы начнем с числа 6, то последовательность будет выглядеть так: 6, 3, 10, 5, 16, 8, 4, 2, 1. Таким образом, длина последовательности для числа 6 равна 9.

Одной из главных проблем этой задачи является то, что неизвестно, существует ли число, для которого эта последовательность никогда не закончится. Такой вопрос до сих пор остается открытым и является одной из важных проблем теории чисел.

Теперь давайте рассмотрим, как написать код для расчета этой последовательности для заданного числа n в Python:

python
def collatz(n):
    seq_len = 1  # Длина последовательности, пока равна 1 
    while n != 1:
        if n % 2 == 0:  # Если число n четное, делим его на 2
            n = n // 2
        else:  # Если число n нечетное, умножаем его на 3 и прибавляем 1
            n = 3 * n + 1 
        seq_len += 1  # Увеличиваем длину последовательности на 1
    return seq_len

Для тестирования функции можно вызвать её с различными значениями n:

python
print(collatz(6))    # 9
print(collatz(7))    # 17
print(collatz(27))   # 112

В результате мы получим длину последовательности для каждого из этих чисел: 6 имеет длину 9, 7 - 17, 27 - 112.

Похожие вопросы на: "3n 1 "

JS Split: как использовать этот метод в JavaScript
Использование оператора goto в языке Си: примеры кода и учебные материалы
Android SDK Platform Tools: полный гайд для разработчиков
Shell для Windows: как работать в командной строке
Concurrency: Understanding How Multiple Processes Run Simultaneously
Как использовать новую строку в ячейке Excel?
Telegram GIF - лучшие анимации для вашего чата
Scipy Optimize: The Ultimate Optimization Tool for Scientific Computing
Форма авторизации
<h1>Script Src - разработка сайтов и создание скриптов