Python 具有行合计条件和灵活顺序的置换数组合
我需要一个矩阵,所有可能的数字组合都给定k个数字,行和为1。一个简单的例子: 数字=[0,0.5,1] 这些数字需要排列成一个矩阵,所有可能的数字组合加起来等于1。重要的是,所有k编号都存在。在这个简单的例子中,最终结果应该是这样的。所有数字都存在,每行加起来等于1:Python 具有行合计条件和灵活顺序的置换数组合,python,python-3.x,Python,Python 3.x,我需要一个矩阵,所有可能的数字组合都给定k个数字,行和为1。一个简单的例子: 数字=[0,0.5,1] 这些数字需要排列成一个矩阵,所有可能的数字组合加起来等于1。重要的是,所有k编号都存在。在这个简单的例子中,最终结果应该是这样的。所有数字都存在,每行加起来等于1: d = {'1': [1, 0, 0, 0.5, 0.5, 0], '2': [0, 0, 1, 0.5, 0, 0.5], '3':[0, 1, 0, 0, 0.5, 0.5]} 到目前为止,我已经通过下面的代码尝试了iter
d = {'1': [1, 0, 0, 0.5, 0.5, 0], '2': [0, 0, 1, 0.5, 0, 0.5], '3':[0, 1, 0, 0, 0.5, 0.5]}
到目前为止,我已经通过下面的代码尝试了itertools.permutations:
numbers = list(itertools.permutations([0,0.5,1], 3))
然而,在给定的标准下,我很难得到期望的结果。我推测我应该将itertools与行值和的一些条件语句结合使用
有人愿意帮忙吗?非常感谢 快速启动 对于这个问题,这只是一个简短的回顾和建议
- 首先,决定是要一个
,还是要一个1
0.5
- 然后选择(组合方式)这些元素的索引
- 创建[0]*n*n矩阵
- 对于每一列,填写您在上面决定的内容
- 列的可能数量 *
- 列数
[1,0,0,0.5,0.5,0]
中,每一行加起来等于2?如果你对每个向量求和,你将得到[1,1,1,1,…],我认为这就是他的意思?