Python程序找出i+j+k不等于n的三元组列表


假设我们有三个数字i、j和k,以及另一个数字n。我们将必须找到所有三元组(i, j, k)的列表,其中i+j+k不等于n。我们将必须使用列表推导策略来解决这个问题。

因此,如果输入类似于i = 1,j = 1,z = 2,n = 3,则输出将为[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]]

为了解决这个问题,我们将遵循以下步骤:

  • arr = 一个三元组[x, y, z]数组,对于所有x的范围从0到i,对于所有y的范围从0到j,以及对于所有z的范围从0到k,当x+y+z不等于n时。

示例

让我们看看下面的实现,以便更好地理解:

def solve(i, j, k, n):
    arr = [[x, y, z] for x in range(i+1) for y in range(j+1) for z in range(k+1) if x+y+z != n]
    return arr

i = 1
j = 1
k = 2
n = 3
print(solve(i, j, k, n))

输入

1, 1, 2, 3

输出

[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]]

更新于:2021年10月6日

153 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告