python - 用于创建 collat​​z 图的长时间运行的 python 脚本

标签 python graph collatz

我一直在尝试编写一个Python脚本来制作一个数字通过collat​​z猜想所需的迭代次数的图表。在此示例中,我仅使用了非常小的范围(仅数字 1),但该脚本似乎一直在运行,即使运行 10 分钟也不会生成图表。下面是代码。有什么建议吗?

import math
import matplotlib.pyplot as plt

def collatz(x):
    count = 0
    while x != 1:   
        if x % 2 == 0:
            x=x/2
            count=count+1
        else:
            x=(x*3)+1
            count=count+1
    return count 
x_coordinates = []
y_coordinates = []
for i in range(0, 2):
    x_coordinates.append(i)
    y = collatz(i)
    y_coordinates.append(y)

plt.plot(x_coordinates, y_coordinates)
plt.show()

最佳答案

因此您可以使用 y = collat​​z(0) 开始迭代,因此 x==0 然后输入 while x != 1 > 循环,对吗?

现在 if 子句会发生什么?

if 0 % 2 == 0:
    x = 0/2 # == 0

所以 x 永远不会变成 1 并且你会永远运行 while 循环,不是吗?

如果您指的是 Collat​​z 问题,那么您应该仔细重新阅读该声明:

Does the Collatz sequence from initial value n eventually reach 1, for all n > 0?

关于python - 用于创建 collat​​z 图的长时间运行的 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770454/

相关文章:

python - Pandas 累积符号概念

c++ - 在完美图中寻找最大团

algorithm - Bellman-Ford 算法和步骤数

memoization - 在 Rust 中的多个函数调用中保持变量存活

python - Python 在处理大量数字/列表时是否有问题,或者我的代码有问题?

python - 由于缺少 api 代理,从 Google Appengine 发送电子邮件失败

Python 3 设置默认字节编码

java - 有人能告诉我为什么我得到这个输出吗?

python - undefined symbol : _ZN2cv3Mat10deallocateEv

python - matplotlib:出现值时绘制特殊符号