これはコードゴルフの質問です。
与えられた整数sおよびnは、-sからsまでの値を取る長さnのすべての配列を出力することです。唯一の工夫は、次の順序で出力する必要があることです。
- 長さがnのすべてゼロの配列。
- 以前に出力した配列を除く、要素が-1から1までの長さnのすべての配列。
- 以前に出力した配列を除く、-2〜2の要素を持つ長さnのすべての配列。
- そして、前に出力した配列を除いて-sからsまでの要素を持つ長さnのすべての配列に到達するまで続けます。
1行に1つの配列を出力する必要があります。スペースまたはカンマで区切ることができます。
以下は、配列/リスト/タプルを正しい順序で出力する非準拠のpythonコードです。
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 "***"
セット減算または同等の機能を実行しない回答に対する追加の栄光(および私からの賛成票)。