Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để tìm danh sách các bộ ba mà i + j + k không giống với n

Giả sử chúng ta có ba số i, j và k và một số khác n. Chúng ta sẽ phải tìm danh sách tất cả các bộ ba (i, j, k) mà i + j + k không giống với n. Chúng tôi sẽ phải giải quyết vấn đề này bằng cách sử dụng chiến lược hiểu danh sách.

Vì vậy, nếu đầu vào là i =1, j =1, z =2 và n =3, thì đầu ra sẽ là [[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] ]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • arr =mảng bộ ba [x, y, z] với mọi x trong phạm vi từ 0 đến i, với mọi y trong phạm vi từ 0 đến j và với mọi z trong phạm vi từ 0 đến k, khi x + y + z là không giống với n

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơ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))

Đầu vào

1, 1, 2, 3

Đầu ra

[[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]]