gpt4 book ai didi

python - 未知的循环次数

转载 作者:行者123 更新时间:2023-12-01 03:35:48 25 4
gpt4 key购买 nike

如果n=1我想写:

for a1 in range(-10,10,1):
if 13*a1 == 1:
print('Success')

如果n=2我想写:

for a1 in range(-10,10,1):
for a2 in range(-10,10,1):
if 13*a1+27*a2==1:
print('Success')

如果n=3我想写:

for a1 in range(-10,10,1):
for a2 in range(-10,10,1):
for a3 in range(-10,10,1):
if 13*a1+27*a2+37*a3==1:
print('Success')

等等。n 可以是 1 或 2 或 3 .. 20。n 是 1 到 20 之间的随机数我该如何编写下一个代码:

for a1 in range(-10, 10, 1):
for a2 in range(-10,10,1):
....
for an in range(-10,10,1): #n is a random number from 1 to 20
if some_number_1*a1+...+some_number_n*an == 1:
print('Success')

我尝试寻找解决方案:

  1. 也许我们可以使用递归

    def recur(a):
    for a in range(-10,10,1):
    recur(a)

    这个方法行不通

  2. 也许我们可以使用列表。例如,

     list[1]=-10,..., 10
    list[2]=-10,...,10
    ...
    list[n]=-10,...,10

    所以我们有矩阵(n,21)。但我不知道如何使用这个矩阵来解决我的问题。

  3. 也许我们需要使用树木,但我从未使用过它们

  4. 也许我可以使用库来解方程 a1*x1+a2*x2+...+an*xn=1 但这并不有趣。我想知道如何自己解决这个任务。

最佳答案

使用itertools.product :

def func(a):
for i in itertools.product(range(-10, 10), repeat=len(a)):
if sum(x*y for x, y in zip(i, a)) == 1:
print("success")

关于python - 未知的循环次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com