Как повысить эффективность алгоритма проверки чисел по гипотезе Коллатца?
Я написал такой код:
import time
mas = set()
def ThreeNPlusOne(n):
while n > 1 and n not in mas:
if n % 2 == 0:
n //= 2
else:
n = 3 * n + 1
n //= 2
mas.add(n)
return True
startTime = time.monotonic() #Начальное время
for i in range(1, 10**7):
ThreeNPlusOne(i)
print("done.")
print(time.monotonic() - startTime) #Вычетаем из текущего времени начальное
Тут я использую множество и добавляю туда повторы, каждый раз проверяю наличие числа n в этом множестве, а можно ли как-нибудь ещё оптимизировать этот алгоритм на python?