如何在python上解决3x+1

    from random import randrange

    a = randrange(1,9)
    print (a)

    if (a % 2) == 0:         
        y = a / 2        
    while True:     
        if (y % 2) == 0:      
            y = y / 2
            print (y)
        else: 
            b = (a * 3) + 1
    while True: 
        if (b % 2) == 0:
            b = b / 2
        else: 
            b = (a * 3) + 1   
        print (b)

"我想用python做一个数学问题求解器,可以找到一个随机数

介于 1 和 9 之间。然后如果它是奇数,则将其乘以 3 并在其中加 1,如果是

是这样,它把它除以二,这个过程不断重复。例如一个数字

电脑选择是7所以:
7*3 + 1 = 22
22/2 = 11
11*3 = 33
等等。
它不应该在答案为 0 之前停止。这是我尝试过的代码,但不确定我应该在哪里做对?”

h402482070 回答:如何在python上解决3x+1

你的线路太多了。您需要循环以在数字变为 1 时停止重复(它永远不会变为 0):

from random import randrange

a = randrange(1,9)

while a != 1:
    print(a)
    if a % 2 == 0:
        a = a // 2
    else:
        a = (a * 3) + 1

print(a)
,

您可以使用以下代码来检查任何数字或任何范围的数字。此代码是通过使用递归函数方法创建的。

jupyter-serverextension enable jupyter_http_over_ws

要检查特定值,请运行:

def f(x): #creating a function
  if x!=4:
    a.append(x)
    if x%2==0:
      while x%2==0:
        x=x/2
        a.append(x)
    x=3*x+1
    f(x)

要检查一系列值,请运行:

a=[]
f(2**100+1) #2 to the power 10,plus 1
a[-1]
本文链接:https://www.f2er.com/3809.html

大家都在问