Esta é uma questão de código-golfe.
Dados inteiros s e n, a tarefa é gerar todas as matrizes de comprimento n que levam valores de -s a s. O único problema é que você deve produzi-los na seguinte ordem.
- A matriz com todos os zeros de comprimento n.
- Todas as matrizes de comprimento n com elementos de -1 a 1, excluindo qualquer matriz que você tenha gerado anteriormente.
- Todas as matrizes de comprimento n com elementos de -2 a 2, excluindo qualquer matriz que você tenha gerado anteriormente.
- E assim por diante até chegar a todas as matrizes de comprimento n com elementos de -s a s, excluindo qualquer matriz que você tenha gerado anteriormente.
Você deve gerar uma matriz por linha. Eles podem ser separados por espaço ou vírgula.
Aqui está um código python não compatível que gera as matrizes / listas / tuplas na ordem correta.
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 "***"
Glória extra (e um voto positivo de mim) por respostas que não executam nenhuma subtração definida ou equivalente.