Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python หารายการ triplet ที่ i+j+k ไม่เท่ากับ n

มีตัวเลข i, j, k และ n หา triplet (x,y,z) ทุกคู่ที่ 0<=x<=i, 0<=y<=j, 0<=z<=k และ x+y+z != n ใช้ list comprehension

ตัวอย่าง: i=1, j=1, k=2, n=3 ผลลัพธ์ 9 ตัว

วิธีแก้ปัญหา

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