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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.