所以基本上我想这样做生成一个随机数(我知道该怎么做)如果那个数是偶数(或number%2 == 0
)然后将它除以2然后得到的数字是奇数(或{ {1}})然后乘以3并加1。如果这没有多大意义,那么这是一个例子
继续此过程,直到数字为== 1
我不确定使用什么循环来做到这一点所以非常感谢任何帮助! :)
答案 0 :(得分:4)
number = # generate random number
while number != 1:
if number % 2: # if number is odd, multiply by 3, add 1
number *= 3
number += 1
else: # if number is even, divide by 2
number /= 2
如果您愿意,可以运行一些厚颜无耻的代码来跟踪迭代:
num_iterations = 0
number = # generate random number
while number != 1:
num_iterations += 1
if number % 2:
number = number * 3 + 1
else:
number /= 2
答案 1 :(得分:0)
由于您不知道将number
等于1需要多少步骤,即迭代次数未知,请使用while
循环:
number = # random number
while number != 1:
if number % 2:
number *= 3
number += 1
else:
number /= 2
或另一种方法:
number = # random number
while True:
if number == 1:
break
elif number % 2: # odd
number *= 3
number += 1
else: # even
number /= 2