Python 查找while循环的一般情况
我正在使用python列表,代码如下:Python 查找while循环的一般情况,python,list,loops,numpy,while-loop,Python,List,Loops,Numpy,While Loop,我正在使用python列表,代码如下: x=[0.1,0.1,0.1] dx=0.1 R=1 while x[0] < R: while x[1] < R: if np.sqrt(x[0] ** 2 + x[1] ** 2 + x[2] ** 2) < R: x[2] = x[2] + dx counter = counter + 1 else: x[1] = x[1] + dx x[
x=[0.1,0.1,0.1]
dx=0.1
R=1
while x[0] < R:
while x[1] < R:
if np.sqrt(x[0] ** 2 + x[1] ** 2 + x[2] ** 2) < R:
x[2] = x[2] + dx
counter = counter + 1
else:
x[1] = x[1] + dx
x[0]= dx
print(counter)
x[0] = x[0] + dx
x[1] = dx
任何帮助都将不胜感激我同意这些评论,几乎可以肯定有更好的方法可以做到这一点。但是,这个(快速组合在一起的)递归函数将执行此操作并在适当的位置编辑数组x
def f(x, dx, n=0):
if n == len(x) - 2:
while x[n] < R:
if np.sqrt(sum(i**2 for i in x[:-1])) < R: # I think you mean this
x[n+1] += dx
counter += 1
else:
x[n] += dx
x[n-1] = dx
else:
while x[n] < R:
f(x, dx, n+1) # recursion
x[n] += dx
x[n+1] = dx
定义f(x,dx,n=0):
如果n==len(x)-2:
当x[n]def f(x, dx, n=0):
if n == len(x) - 2:
while x[n] < R:
if np.sqrt(sum(i**2 for i in x[:-1])) < R: # I think you mean this
x[n+1] += dx
counter += 1
else:
x[n] += dx
x[n-1] = dx
else:
while x[n] < R:
f(x, dx, n+1) # recursion
x[n] += dx
x[n+1] = dx
定义f(x,dx,n=0):
如果n==len(x)-2:
当x[n]
两种情况下的行是否相同?例如:对于dx=0.1和R=1,我们从0.1开始,这就是我试图做的:从x=[0.1,0.1,0.1](在第一个循环之后)x=[0.9,0.1,0.1],然后[0.1,0.2,0.1]依此类推,直到[0.9,0.9,0.1],然后我们将从[0.1,0.2]开始因此,在上午这个时候,我不愿意免费提供更多的关注问题空间(而不是Python语法/逻辑/最佳实践)。你能把问题集中在Python方面,把数学/逻辑分离出来吗?你能解释一下你首先打算做什么吗?通常,当您的代码中有两个以上的嵌套循环时,有一种更好的方法来组织代码。乍一看,这似乎是一个非常简单的递归函数。也就是说,如果np.sqrt(x[0]**2+x[1]**2+x[2]**2),它是否正确/适用于
两种情况下的行是否相同?例如:对于dx=0.1和R=1,我们从0.1开始,这就是我试图做的:从x=[0.1,0.1,0.1](在第一个循环之后)x=[0.9,0.1,0.1],然后[0.1,0.2,0.1]依此类推,直到[0.9,0.9,0.1],然后我们将从[0.1,0.2]开始因此,在上午这个时候,我不愿意免费提供更多的关注问题空间(而不是Python语法/逻辑/最佳实践)。你能把问题集中在Python方面,把数学/逻辑分离出来吗?谢谢,但这不是我想要的,它给了我不同的结果。我将尝试编辑它以获得我想要的东西。但无论如何谢谢你,谢谢你,但这不是我想要的,它给了我不同的结果。我将尝试编辑它以获得我想要的东西。不过还是谢谢你
def f(x, dx, n=0):
if n == len(x) - 2:
while x[n] < R:
if np.sqrt(sum(i**2 for i in x[:-1])) < R: # I think you mean this
x[n+1] += dx
counter += 1
else:
x[n] += dx
x[n-1] = dx
else:
while x[n] < R:
f(x, dx, n+1) # recursion
x[n] += dx
x[n+1] = dx