Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

i+j+k가 n과 같지 않은 삼중항 목록을 찾는 Python 프로그램

<시간/>

세 개의 숫자 i, j, k와 또 다른 숫자 n이 있다고 가정합니다. i+j+k가 n과 같지 않은 모든 삼중항(i, j, k)의 목록을 찾아야 합니다. 목록 이해 전략을 사용하여 이 문제를 해결해야 합니다.

따라서 입력이 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가 다음과 같은 경우 0~i 범위의 모든 x, 0~j 범위의 모든 y 및 0~k 범위의 모든 z에 대한 삼중항 배열 [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]]