-1

我在 python 中使用 gambit 以博弈论的方式模拟一个世界。策略的一个构造是保存每个参与者做出的一系列决策的“结果”。这是以下形式:

game[d1,d2,d3,...,dn][n] = payoff

其中d1是玩家 1 做出的d2决定的索引,是玩家 2 做出的决定的索引,依此类推,并且是正在为其存储n的玩家的索引。payoff

现在,可能有可变数量的玩家,因此传递给game对象的索引的维度可能会改变

如何从[0,0,...,0]through生成系列[8,8,...,8](其中维度 = 玩家人数 = n),以便我可以将它们存储到[d1,d2,d3,...,dn]

4

1 回答 1

0

看看python的itertools模块。听起来这个product功能会做你想做的事。

例子:

import itertools as it
 list(it.product(*[range(2)]*3))

给出所有长度为 3 且包含两个元素的列表

[(0, 0, 0),
(0, 0, 1),
(0, 1, 0),
(0, 1, 1),
(1, 0, 0),
(1, 0, 1),
(1, 1, 0),
(1, 1, 1)]

有很多其他的可能性itertools,特别是它还提供了permutationscombinations

于 2017-10-27T18:49:50.867 回答