**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
这就是我需要找到错误的地方(。制作Nsteps与起始数字的散点图。您应该调整标记符号和大小,以便您可以识别数据中的模式,而不仅仅是看到大量的点。)
基本上这是我的代码:
#位于[]
import numpy as np
import matplotlib.pyplot as plt
def collatz(N):
iteration=0
listNumbers=[N]
while N != 1:
iteration += 1
if (N%2) == 0:
N = N/2
else:
N= (N*3) + 1
print(i,'number of interactions',iteration)
print(listNumbers)
return iteration
N= int(input(' enter a number:'))
iteration=collatz(N)
#输出[]
enter a number:7
10000 number of interactions 16
[7]
#位于[]
s=np.array([])
for i in range(1,10001,1):
K=collatz(i)
s=np.append(s,K)
print(s)
#out(太大,无法粘贴到此处,但我将前10行粘贴到此处)
#位于[]
plt.figure()
plt.scatter(range(1,100001,1),s) #gives me the x and y must be the same size error here plt.xlabel('number of interations')
plt.ylabel('numbes')
plt.ylim(0,355)
plt.xlim(0,100000)
plt.show()
#Make a scatter plot of Nsteps versus starting number. You should adjust your marker symbol
and size such that you can discern patterns in the data, rather than just seeing a solid mass of
points.
2条答案
按热度按时间ccgok5k51#
试试看:
这将根据数组的实际大小设置x值的范围。
w3nuxt5m2#
该错误表示
range(1,100001,1)
与s
的长度不同。请尝试确认。你需要有相同数量的x坐标和y坐标。使它们大小相同,它就可以工作。
从你的问题/代码中,我不清楚你实际上试图策划什么,但我刚刚描述的是问题的根源。