声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1403|回复: 1

[编程技巧] 新手求助:matlab里有没有一个函数可以分解正整数?

[复制链接]
发表于 2006-6-29 19:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2006-6-30 12:16 | 显示全部楼层
<P>一个比较简单的枚举方式:<br>function SumUnEquation<br>clc<br>x1=[15:65];<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=[y1;i,j,k,l];<br>                    y2=[y2;x1(i),x2(j),x3(k),x4(l)];<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编辑过]

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 04:32 , Processed in 0.058819 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表