Questa è una domanda di code-golf.
Dati numeri interi s e n il compito è quello di produrre tutti gli array di lunghezza n che assumono valori da -s a s. L'unica svolta è che è necessario emetterli nel seguente ordine.
- La matrice di tutti zeri di lunghezza n.
- Tutti gli array di lunghezza n con elementi da -1 a 1 escluso qualsiasi array che è stato emesso in precedenza.
- Tutti gli array di lunghezza n con elementi da -2 a 2 escluso qualsiasi array che è stato emesso in precedenza.
- E così via fino ad arrivare a tutti gli array di lunghezza n con elementi da -s a s escluso qualsiasi array che hai emesso in precedenza.
Dovresti produrre un array per riga. Possono essere separati da spazio o virgola.
Ecco un codice Python non conforme che genera le matrici / liste / tuple nell'ordine giusto.
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 "***"
Gloria extra (e un mio voto) per le risposte che non eseguono alcuna sottrazione stabilita o equivalente.