当前位置 :
【matlab算法求优化fori=10000:1:99999forj=10000:1:99999a=fix(i/10000);b=mod(fix(i/1000),10);c=mod(fix(i/100),10);d=mod(fix(i/10),10);e=mod(i,10);%abcde分别代表i的万千百十个位数字f=fix(j/10000);g=mod(fix(j/1000),10);h=mod】
更新时间: 2025-08-29 04:54:03
1人问答
问题描述:

matlab算法求优化fori=10000:1:99999forj=10000:1:99999a=fix(i/10000);b=mod(fix(i/1000),10);c=mod(fix(i/100),10);d=mod(fix(i/10),10);e=mod(i,10);%abcde分别代表i的万千百十个位数字f=fix(j/10000);g=mod(fix(j/1000),10);h=mod(fix(j/100),10);k=mod(fix(j/10),10);l=mod(j,10);%fghkl分别代表j的万千百十个位数字z=i*j;m=fix(z/1000000000);n=mod(fix(z/100000000),10);o=mod(fix(z/10000000),10);p=mod(fix(z/1000000),10);q=mod(fix(z/100000),10);r=mod(fix(z/10000),10);s=mod(fix(z/1000),10);t=mod(fix(z/100),10);u=mod(fix(z/10),10);v=mod(z,10);%mnopqrstuv分别表示十位数z各个数位的数字,依次是从十亿位到个位A=[abcdefghkl];A1=unique(A);len1=length(A1(:));B=[mnopqrstuv];B1=unique(B);len2=length(B1(:));iflen1==10&&len2==10&&z>1000000000disp(i);disp(j);disp(z);elsecontinueendendend我学matlab没多久这是我写的程序题目是一个五位数A乘以一个五位数B得到一个十位数Z,A和B各个数位的数字构成一维矩阵是由0到9共十个数字组成,Z各个数位的数字也是一个从0到9的十个数字的一维矩阵。求出这个等式A*B=Z程序我是上面那样写的计算机反应不出来而且也没报错我在想是不是要优化下求大神指导如何优化谢谢了

程锡勤回答:
  写matlab程序需要注意,尽量少用for。matlab从名字也可以看出是为矩阵运算设计的,所以你要多利用矩阵运算来处理问题。先给你如果我做此题,会写什么程序。以下是我的程序。set={0:9};t=nchoosek([0:9],5);tr=cell2mat(cellfun(@perms,cellfun(@setdiff,set(ones(size(t,1),1),1),num2cell(t,2),'uniformoutput',0),'uniformoutput',0));trr=cell2mat(cellfun(@perms,num2cell(t,2),'uniformoutput',0));A=trr*10.^[4:-1:0]';C=tr*10.^[4:-1:0]';s=A.*C;result=str2num(sort(num2str(s),2,'descend'))==9876543210;op='*=';disp([num2str(A(result)),op(ones(sum(result),1),1),num2str(C(result)),op(ones(sum(result),1),2),num2str(s(result))]);运行结果如下。41730*85962=358719426035190*67482=237469158023058*46179=106479538227903*46815=130627894596027*84135=807923164583940*62751=526731894063780*42591=271645398042591*63780=271645398062751*83940=526731894084135*96027=807923164546815*27903=130627894546179*23058=106479538267482*35190=237469158085962*41730=3587194260然后,我试图优化你的程序,可惜,你那样的强力计算会使我程序内存溢出,具体地说,我试图用矩阵来加速你的程序,但无奈,我的计算计算机内存2G存不了90000*90000个数字的矩阵。所以只可以用for,但那样遇到和你一样的问题,速度狂慢。所以,你从了吧。
最新更新
保卡通(baokatong.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 保卡通 baokatong.com 版权所有