繁体   English   中英

关于整数解 a+b+c=2 [关闭]

[英]About integer solution a+b+c=2 [closed]

对于方程a+b+c=2, a,b,c>=0 ,是否有一个 MATLAB 函数可以返回数组中的整数解? 那是:

[0 0 2; 0 2 0; 2 0 0; 0 1 1; 1 0 1; 1 1 0]

注意a1+a2+..an=k, ai,k>=0 ,有(n-1+k)!/((n-1)!*k!)不同的整数解。

如果您可以访问 Symbolic Math Toolbox,则可以使用combinat::compositions MuPAD 函数。 您可以直接在 MuPAD 中使用它,也可以从 MATLAB 中调用它

>> x = evalin(symengine, 'combinat::compositions(2, Length=3, MinPart=0)')
x =
[ [2, 0, 0], [1, 1, 0], [1, 0, 1], [0, 2, 0], [0, 1, 1], [0, 0, 2]]

然后,您可以将返回的符号变量转换为数字元胞数组:

>> x = arrayfun(@double, x, 'Uniform',false)
x = 
    [1x3 double]    [1x3 double]    [1x3 double]    [1x3 double]    [1x3 double]    [1x3 double]

>> celldisp(x)
x{1} =
     2     0     0
x{2} =
     1     1     0
x{3} =
     1     0     1
x{4} =
     0     2     0
x{5} =
     0     1     1
x{6} =
     0     0     2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM