이것은 코드 골프 질문입니다.
주어진 정수 s와 n은 -s에서 s까지 값을 취하는 길이 n의 모든 배열을 출력하는 것입니다. 유일한 순서는 다음 순서로 출력해야한다는 것입니다.
- 길이가 n 인 모든 0 배열.
- 이전에 출력 한 배열을 제외하고 -1에서 1까지의 요소가있는 길이 n의 모든 배열.
- 이전에 출력 한 배열을 제외하고 -2에서 2까지의 요소가있는 길이 n의 모든 배열.
- 그리고 이전에 출력 한 배열을 제외하고 -s에서 s까지의 요소가있는 길이 n의 모든 배열에 도달 할 때까지 계속됩니다.
한 줄에 하나의 배열을 출력해야합니다. 공백이나 쉼표로 구분할 수 있습니다.
다음은 배열 / 목록 / 튜플을 올바른 순서로 출력하는 비준수 파이썬 코드입니다.
import itertools
s = 3
n = 2
oldsofar = set()
newsofar = set()
for i in xrange(s):
for k in itertools.product(range(-i,i+1), repeat = n):
newsofar.add(k)
print newsofar - oldsofar
oldsofar = newsofar.copy()
print "***"
정해진 뺄셈이나 그에 상응하는 것을 수행하지 않는 답변에 대한 여분의 영광 (그리고 나에게 찬성).