在numpy的ndarray中生成所有可能的值?

2024-06-13 02:52:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python中的gambit以博弈论的方式模拟一个世界。博弈的一个构造是保存“结果”以供每个参与者做出一组决定。其形式如下:

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

其中d1是玩家1做出的决策的索引,d2是玩家2做出的决策的索引,依此类推,n是为其存储payoff的玩家的索引。你知道吗

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

如何生成从[0,0,...,0][8,8,...,8](其中dimension=number of players=n)的序列,以便将它们存储到[d1,d2,d3,...,dn]?你知道吗


Tags: game数量方式玩家世界参与者形式d2
1条回答
网友
1楼 · 发布于 2024-06-13 02:52:58

看看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。你知道吗

相关问题 更多 >