Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 矩阵中所有可能的组合,使得所有数字之和等于一个固定值_Algorithm_Matlab_Vector_Combinatorics - Fatal编程技术网

Algorithm 矩阵中所有可能的组合,使得所有数字之和等于一个固定值

Algorithm 矩阵中所有可能的组合,使得所有数字之和等于一个固定值,algorithm,matlab,vector,combinatorics,Algorithm,Matlab,Vector,Combinatorics,假设我有Q向量,如下所示: A_1 = [x_1,x_2,...,x_m]; A_2 = [y_1,y_2,...,y_n]; . . . A_Q = [z_1,z_2,...,z_q]; 基本上,m,n,q是正整数,不一定相等。每个向量元素x,y,z是介于(0,1)之间的数字。这些向量的一个可能组合可以是: B_1 = [x_1,y_1,...,z_1]; 在每个组合中,每个向量的一个元素应该被包含。因此,我们可以有不同的组合。现在,我想找到这样的组合,它们的元素的平均值等于一个特定的数字

假设我有
Q
向量,如下所示:

A_1 = [x_1,x_2,...,x_m];
A_2 = [y_1,y_2,...,y_n];
.
.
.
A_Q = [z_1,z_2,...,z_q];
基本上,
m,n,q
是正整数,不一定相等。每个向量元素
x,y,z
是介于
(0,1)之间的数字。
这些向量的一个可能组合可以是:

B_1 = [x_1,y_1,...,z_1];
在每个组合中,每个向量的一个元素应该被包含。因此,我们可以有不同的组合。现在,我想找到这样的组合,它们的元素的平均值等于一个特定的数字
W
,即
mean(B_1)=W.
注意
W
是一个介于
(0,1)之间的数字。
一种低效的方法是计算所有排列,然后将
W
与其元素的平均值进行比较。然而,随着Q,m,n,Q的增加,计算机(MATLAB)无法处理它,这是显而易见的

你能帮我找到一个有效的方法在合理的时间内解决这个问题吗

可以说,可能没有向量,其中元素的平均值等于W。是的,这是真的。然后,是否可以找到组合,使其元素的平均值介于
(W-T,W+T)之间,
其中
T
介于
(0,1)
之间


非常感谢。

结果中每个向量最多需要一个元素,还是只需要一个?如果您的组合包含每个向量中的一个元素,则可以排除所有具有值的元素。
>Q*T
。此外,元素值是连续的还是离散的?@gdelab,正好一个。我编辑了文本。“
m,n,q
是整数,
>1
”这无助于我们理解问题的潜在规模。你试过了吗?我们可以迭代地生成组合,但速度要慢得多。