新手求助:matlab里有没有一个函数可以分解正整数?
就是这样一个问题<BR>t1+t2+t3+t4=t(已知)<BR>且 15<=ti<=65<BR>ti和t均为正整数.<BR>我实在是不知道能不能有这样的函数可以直接实现这样的功能,如果没有的话我该如何实现呢.希望有人可以帮帮我.万分感谢. <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]