Matlab 关于整数解a+;b+;c=2

Matlab 关于整数解a+;b+;c=2,matlab,combinatorics,Matlab,Combinatorics,对于方程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!)不同的整数解。如果可以访问符号数学工具箱,则可以使用MuPAD函数。您可以直接在MuPAD中使用它,也可以: >> x = evalin(symengine, 'combinat::compositions(2,

对于方程
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!)
不同的整数解。

如果可以访问符号数学工具箱,则可以使用MuPAD函数。您可以直接在MuPAD中使用它,也可以:

>> 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

没有,但是在文件交换上有几个提交文件将为您提供整数分区。非常感谢!顺便问一下,有没有一种方法可以方便地沿轴镜像点?例如[1]可以有8个镜像:[11;11-1;1-11…]@law\u light-hmm,下面是一个快速实现:。它适用于任何长度。非常感谢!!!给人印象深刻的