组合:如何计算所有可能的分数组合,为比赛结果猜测gam

2024-05-16 10:53:12 发布

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

我和一群人“打赌”哪支球队会在不同的足球比赛中获胜(不涉及金钱)。有三种可能性可以给玩家加分。在

points = [0, 3, 4]

所以,如果我说A队将以1比0获胜。在

  • 如果A队输了,我就得不到分。在
  • 如果A队赢了,我得3分。在
  • 如果A队1比0获胜,我将得到一分,总共4分。在

所以,对于那个特定的赌注,我可以得到0,3,或4分。其他参与赌博的人也一样。所以我试图得到所有可能的结果组合。对于两个玩家,我希望能够获得这种输出(例如两个玩家):

"Player 1"    0   0   0   3   3   3   4   4   4
"Player 2"    0   3   4   0   3   4   0   3   4

我以前有一个Excel文件,用VBA计算这些可能的结果,但是播放器的数量是固定的,所以代码不适合添加或删除播放器。在

我正在尝试创建一个函数,它可以计算并输出一些数据结构以及所有可能的结果组合,用于不同(和动态)数量的玩家。在

我读过一些关于python中组合的问题(10+),但是这些问题都没有涉及到这个特定的场景。它们通常包括使用itertools进行排列(不是这种情况,因为我们都可以得到相同的结果),对于多个组合(如果组合的数量超过了可能结果的值(3),就不起作用了。我确实设法得到了与我需要的东西相似的东西:

^{pr2}$

结果是一个元组序列,其中包含可能结果的字符串值:

('0', '0')
('0', '3')
('0', '4')
('3', '0')
('3', '3')
('3', '4')
('4', '0')
('4', '3')
('4', '4')

但是作为字符串,我不能对它们执行任何操作或计算统计。。。在

有没有任何方法可以使用itertools来实现这一点? 有人会建议完全不同的方法吗?我愿意接受任何解决办法。 有没有哪种类型的球员可以把结果合并到一起?提前感谢…


Tags: 文件方法字符串数量玩家可能性播放器excel
1条回答
网友
1楼 · 发布于 2024-05-16 10:53:12

首先不需要将值转换为字符串!在

for p in itertools.product(points, repeat=2):

这将为您排序整数对。在

具体来说,你想要的是你的积分列表的笛卡尔积,它本身是n次(其中n是玩家的数量)。这正是带有repeat关键字的itertools.product所得到的结果。在

相关问题 更多 >