変数セットがあり、各変数がセットからいくつかの値を取得するとします
。だから
。今、関数があります
。
to
onのすべての可能な値を合計するにはどうすればよい
ですか?
たとえば、if and
and
and
then 私が探しているのは次のとおりです。
※サイズは変更可能です。そのため、サイズも変化しています。複雑な形で書きたくなかったのですが、実際には、それぞれが独自の変数セットを持つ複数の関数を追加しています。
使用できますitertools.product
>>> from itertools import product
>>> V = [[1,2],[3,4,5]]
>>> summ = 0
>>> for x in product(*V):
print x
# or call some function : summ += func(*x)
...
(1, 3)
(1, 4)
(1, 5)
(2, 3)
(2, 4)
(2, 5)
リストを使用してセットを表すことができます。したがって、V はリストのリストです。
V = [[1,2],[3,4,5]]
r = [[]]
for v in V:
r = [ i + [y] for y in v for i in r ]
# at this point, r contains the inputs for your functions
sum = 0
for domain in r:
sum += function(domain)
リストを受け入れるように関数を定義するだけです。あなたの例では、次のようになります。
def function(l):
return l[0] * l[1]