hellokitty 发表于 2006-6-29 19:23

新手求助:matlab里有没有一个函数可以分解正整数?

就是这样一个问题<BR>t1+t2+t3+t4=t(已知)<BR>且 15&lt;=ti&lt;=65<BR>ti和t均为正整数.<BR>我实在是不知道能不能有这样的函数可以直接实现这样的功能,如果没有的话我该如何实现呢.希望有人可以帮帮我.万分感谢.

bainhome 发表于 2006-6-30 12:16

<P>一个比较简单的枚举方式:<br>function SumUnEquation<br>clc<br>x1=;<br>x2=x1;<br>x3=x1;<br>x4=x1;<br>y1=[];<br>y2=[];<br>for i=1:length(x1)<br>    for j=1:length(x2)<br>      for k=1:length(x3)<br>            for l=1:length(x4)<br>                if x1(i)+x2(j)+x3(k)+x4(l)==213<br>                  y1=;<br>                  y2=;<br>                else<br>                  y1=y1;<br>                  y2=y2;<br>                end<br>            end<br>      end<br>    end<br>end<br>save('results.mat','y1','y2')<br>计算速度很慢,对于sum值为213,共计求得19600组解,耗时 78.063692秒<br>个人意见:如果不讨论算法的改进而单纯使用循环或多重循环进行计算,MATLAB并没有长处,这样的问题用fortran算最好。</P>
[此贴子已经被作者于2006-6-30 12:18:40编辑过]
页: [1]
查看完整版本: 新手求助:matlab里有没有一个函数可以分解正整数?