Python Challenges: найдите начальный номер, менее десяти тысяч создаст самую длинную цепочку
Задачи Python - 1: Упражнение 42 с решением
Напишите программу на Python, чтобы найти начальный номер, менее десяти тысяч создаст самую длинную цепочку.
Из Википедии - Гипотеза Коллатца - это гипотеза в математике, которая касается последовательности, определенной следующим образом: начните с любого положительного целого числа n. Затем каждый член получается из предыдущего члена следующим образом: если предыдущий член является четным, то следующий член равен половине предыдущего. Если предыдущий член является нечетным, то следующий член в 3 раза больше предыдущего и плюс 1. Предположение состоит в том, что независимо от значения n последовательность всегда будет равна 1.
Пример решения :
Код Python:
def create_sequence_num(n):
terms = 1
while n > 1:
if n % 2 == 0:
n = n / 2
else:
n = 3 * n + 1
terms += 1
return terms
def Collatz_starting_num():
temp = 0
i = 1
while i < 10000:
s = create_sequence_num(i)
if s > temp:
temp = s
value = i
i += 1
return value
print(Collatz_starting_num())
Пример вывода:
6171
Блок - схема:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Python, чтобы найти первый номер треугольника, имеющий более n (заданных) делителей.
Далее: Напишите программу на Python для вычисления суммы цифр числа 2 20 .
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования