前提・実現したいこと
下記のようなリストを自動的に生成するpythonプログラムを書きたいと思っています。
slist = [a0, a1, a2, a3, a4, - - - , an-1]
各要素aiの取りうる数値
a0 = 0
a1 = -1, 0, 1
a2 = (a1-1), a1, (a1+1)
a3 = (a2-1), a2, (a2+1)
an-1 = (an-2-1), an-2, (an-2+1)
リストの取りうる場合の数は、3**(n-1)個となると思います。
それらを、slist[i] の形で取得したいと思うのですが、どうすればよいでしょうか?
該当のソースコード
試したこと
考えましたが、どうしても思いつきませんでした。
補足情報(FW/ツールのバージョンなど)
python3.7を使っています。
補足情報(取得したいリストの事例)
2要素のリストの場合(n=2)
(3通り)
[0, -1]
[0, 0]
[0, -1]
3要素の場合(n=3)
(9通り)
[0, -1, -2]
[0, -1, -1]
[0, -1, 0]
[0, 0, -1]
[0, 0, 0]
[0, 0, 1]
[0, 1, 0]
[0, 1, 1]
[0, 1, 2]
4要素の場合(n=4)
(3*(n-1)=27通りになります)
[0, -1, -2, -3]
[0, -1, -2, -2]
[0, -1, -2, -1]
[0, -1, -1, -2]
[0, -1, -1, -1]
[0, -1, -1, 0]
[0, -1, 0, -1]
[0, -1, 0, 0]
[0, -1, 0, 1]
[0, 0, -1, -2]
[0, 0, -1, -1]
[0, 0, -1, 0]
[0, 0, 0, -1]
[0, 0, 0, 0]
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 0, 1, 1]
[0, 0, 1, 2]
[0, 1, 0, -1]
[0, 1, 0, 0]
[0, 1, 0, 1]
[0, 1, 1, 0]
[0, 1, 1, 1]
[0, 1, 1, 2]
[0, 1, 2, 1]
[0, 1, 2, 2]
[0, 1, 2, 3]
以上です
回答3件
あなたの回答
tips
プレビュー