红薯 发表于 2013-8-25 13:25

一道初级数学题可能用到排列组合函数

把1到9填入下列空格,使等式成立,空格里的数字不能重复
 
     □          □   □     
    ──   +   ── +    ── = 1
    □□        □□      □□     
接触matlab不久,还不熟悉排列组合相关的函数,

magic2728 发表于 2013-8-25 19:26

给你写了个程序,用到的是perms,你参考一下。

红薯 发表于 2013-8-25 20:41

magic2728 发表于 2013-8-25 19:26 static/image/common/back.gif
给你写了个程序,用到的是perms,你参考一下。

不知道能否用向量化的方法做

magic2728 发表于 2013-8-25 21:34

红薯 发表于 2013-8-25 20:41 static/image/common/back.gif
不知道能否用向量化的方法做

什么意思?

红薯 发表于 2013-9-2 14:56

magic2728 发表于 2013-8-25 21:34 static/image/common/back.gif
什么意思?

向量化的操作更快啊,下面这种就是x=perms(1:9);
r=x(:,1)./(10.*x(:,2)+x(:,3))+x(:,4)./(10.*x(:,5)+x(:,6))+x(:,7)./(10.*x(:,8)+x(:,9));
x(r==1,:)

magic2728 发表于 2013-9-2 15:03

红薯 发表于 2013-9-2 14:56 static/image/common/back.gif
向量化的操作更快啊,下面这种就是

不错不错,这样的代码更加精简!

lvyanlong 发表于 2013-9-2 15:04

Matlab中排列组合的函数
页: [1]
查看完整版本: 一道初级数学题可能用到排列组合函数