用matlab设计计算24点的程序
http://blog.sina.com.cn/s/blog_538a69a70100apb7.html
这是我07年用matlab写的24点程序 供参考
算法分析:
根据优先级分成5种表达式类型:
- ((a.b).c).d
- (a.(b.c)).d
- (a.b).(c.d)
- a.((b.c).d)
- a.(b.(c.d))
(+-*/)的全排列代替表达式中的'.',abcd也要完全组合,计算表达式的值就可以
for i=1:4
Q(i)=num2str(varargin{i});
end
p='+-*/';
flag=0;
for h1=1:4
t(1)=Q(h1);
Q1=Q;
Q1(h1)=[];
for h2=1:3
t(2)=Q1(h2);
Q2=Q1;
Q2(h2)=[];
for h3=1:2
t(3)=Q2(h3);
Q3=Q2;
Q3(h3)=[];
t(4)=Q3;
for g1=1:4
pp(1)=p(g1);
p1=p;
p1(g1)=[];
for g2=1:3
pp(2)=p1(g2);
p2=p1;
p2(g2)=[];
for g3=1:2
pp(3)=p2(g3);
HH=[t(1),pp(1),t(2),pp(2),t(3),pp(3),t(4)];
hh=str2num(HH);
if hh==varargin{5}
disp([HH,'=',num2str(varargin{5})]);
flag=1;
end
end
end
end
end
end
end
if flag==0
disp('error!!!!!!!!!');
end
——————————————————————————————————————————
>> raigu002(3, 5, 6 ,9,24)
3+5*6-9=24
3+6*5-9=24
3-9+5*6=24
3-9+6*5=24
5*6+3-9=24
5*6-9+3=24
6*5+3-9=24
6*5-9+3=24
>> raigu002(3, 5, 6 ,9,100)
error!!!!!!!!!
注:这个是不带括号运算的,而且4个数都不能为零 当然你可以往里加控制语句
貌似木有看懂题目……求解释。
Q(i)=num2str(varargin{i});
end
不止到
控制系统MATLAB计算及仿真控制系统MATLAB计算及仿真
《控制系统MATLAB计算及仿真》是由黄忠霖和黄京共同编著的一本专业书籍,它详细地探讨了MATLAB在控制系统的计算和仿真中的应用。这本书由国防工业出版社出版,发行日期为2009年1月1日,已经是该书的第三版。全书共计480页,文字量达到了888,000字,为读者提供了丰富的理论和实践内容。印刷时间同样是在20...
Matlab7.0\/Simulink6.0应用实例仿真与高效算法开发内容简介
本书专注于科学计算和工程仿真的实践应用,以Matlab 7.0和Simulink 6.0为核心工具,通过结合实际工程问题进行深入讲解。它以图文并茂的方式展示,特别注重实际操作和实例演示,提供了大量的计算程序和仿真框图。全书分为两大部分,共计18章。首部分(第1至9章)是Matlab计算篇,主要探讨如何运用Matlab解决各...
基于matlab的通信仿真系统设计
基于MATLAB \/Simulink 所建立的扩频通信系统的仿真模型,能够反映扩频通信系统的动态工作过程,可进行波形观察、频谱分析和性能分析等,同时能根据研究和设计的需要扩展仿真模型,实现以扩频通信为基础的现代通信的模拟仿真,为系统的研究和设计提供强有力的平台。图2 为基于MATLAB\/Simulink 的扩频通信系统仿真模型。图2 系统...
用MATLAB设计低通,带通,高通和带阻FIR数字滤波器 急!!!
与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。一、巴特沃斯IIR滤波器的设计在MATLAB下,设计巴特沃斯IIR滤波器可...
用matlab求解数值计算问题,matlab中已有各种数值计
用matlab求解数值计算问题方法:1、使用MATLAB中提供的ode45,ode23等函数,将微分方程直接输入函数,即可得到所求解的解析解。2、使用MATLAB中提供的函数linsolve,solve,inv等,将方程组参数输入函数,即可得到所求解的解析解。3、使用MATLAB中提供的fsolve函数,将非线性方程参数输入函数,即可得到所求解的...
如何用Matlab实现倒计时
Endtime是需要设置的结束时间——当结束时间早于当前时间时,倒计时程序将不起作用。global Endtime Endtime=[2013 10 22 21 15 00];t = timer('StartDelay', 0,'Period',0.05,'TasksToExecute',10000,...'ExecutionMode','fixedRate');t.TimerFcn = {@mycallback};start(t)子函数 functi...
MATLAB数值分析与仿真案例基本介绍
本书《MATLAB数值分析与仿真案例》由张德丰编著,由清华大学出版社出版。该书在2011年10月1日首次发行,拥有16开本,页面数达到366页,总计598,000字。印刷方面,选用的是胶版纸,平装设计,确保了读者的阅读体验。ISBN号码为9787302262541,标志着其独特的身份和专业性。本书旨在通过实例解析,深入浅出地...
怎么用matlab设计ASK、FSK、PSK的调制和解调,包括时域和频域波形_百 ...
其他回答 Matlab的ASK_FSK__PSK仿真http:\/\/wenku.baidu.com\/view\/bcf51131f111f18583d05a57.html 追问 没有时域和频域波形? allstars52 | 发布于2013-03-25 举报| 评论 0 1 1条折叠回答 为您推荐: matlab教程pdf matlab安装教程 用matlab调制 matlab调制是什么 matlab编程入门教程 matlab模拟...
matlab中成型滤波器函数rcosdesign函数?
探索MATLAB中的rcosdesign滤波器设计神器 在信号处理的世界里,理想升余弦滤波器以其无限长的时域脉冲响应闻名,然而在实际应用中,这种理想特性并不切实际,因此我们需要对其进行合理的截断。尽管其时域中的振荡在经过几个周期后会快速衰减,即便截断,带来的误差几乎可以忽略不计。例如:b = rcosdesign(0....
matlab界面设计技术资料和matlab软件下载网址
至于Matlab资料http:\/\/www.matlabsky.com\/forum-6-1.html这里有很多估计你2个小时都下载不完,当然有很多是GUI界面设计,根据需要你可以找找 还有MATLAB一些常用的代码http:\/\/www.matlabsky.com\/forum-4-1.html 这里是工具箱下载http:\/\/www.matlabsky.com\/forum-18-1.html 至于MATLAB下载嘛,这里...
堂畅感冒: http://blog.sina.com.cn/s/blog_538a69a70100apb7.html 这是我07年用matlab写的24点程序 供参考
东乡族自治县17091302584: 急急急!在matlab上,用24个点画了一条曲线图,不知道曲线方程,怎么能用matlab求出曲线长度? - ?
堂畅感冒: 严格来说你这个是折线.如果要求精度不高,只要24个点的话,就求出每两个点之间的距离,把23个段加起来就是长度了;如果要求比较高,求需要先拟合你的曲线,然后用微分,积分求解.
东乡族自治县17091302584: 如何编写一个matlab程序,计算任意两点间的距离 - ?
堂畅感冒: a = [1,2];%任意数1,x,y坐标 b = [4,6];%任意数2,x,y坐标 d = norm(a-b);
东乡族自治县17091302584: 怎么用matlab实现计算器功能 - ?
堂畅感冒: 根据自己的结构设想,利用GUIDE命令,驱动GUI图形编辑器,制作图形用户界面.大致操作过程:1、新建一个GUI界面2、添加组件,如静态文本框,编辑框,按钮等,界面设计后保存其Fig文件,扩展名为.fig,M文件的扩展名为.m.3、对GUI的编程,即对每个编辑框,按钮输入命令代码.4、运行程序.5、一个简单的函数型计算器界面.
东乡族自治县17091302584: 怎么用matlab计算多个点与多个点的距离问题? - ?
堂畅感冒: 怎么用matlab计算多个点与多个点的距离问题? 可以使用norm函数,比如:中心点P别的点Anorm(repmat(P, size(A, 1), 1) - A)可以计算出来.或者你将数据贴一下.
东乡族自治县17091302584: 求24点算法思路(非穷举算法) - ?
堂畅感冒: 这个问题实际上是一个编程问题,而不是计算问题.可能您需要大量的时间来编写这个算法,但在计算中,可以获得时间精简.比如:2 3 5 1 在标准24点程序中,试探2*5=10后,需求值为2.4或14,但是3+1只能达到4(在这个问题中,明显乘法所得值较大;在出现1时加法所得值较大),不可能更多,所以不用试探3和1的四则运算就可以舍弃2*5的计算法.在编程中,您当然必须耗费大量的脑力来穷举,但是您可以让计算机绕过一些明显的死路,这样可以用选择比较来大大缩短计算的时间.不要问我标准算法,我只想提供思路.
东乡族自治县17091302584: 用matlab编程计算:最好写详细一点,谢谢?
堂畅感冒: % 序列:1,2,...,100 n=1:100; % 求阶乘,序列:1!,2!,...,100! a=factorial(n); % 求阶乘的倒数序列,各项为:(-1)^(n-1)/n! x=(-1).^(n-1)./a; % 求前1、2、...、100个数字的和之后,重新构成数组 y=cumsum(x); % 注意:用了“.^”和“./”,并且用了cumsum()这个函数.我理解求前100项,是指将n=1,2,...,100的100个结果都给出来,所以用了cumsum()函数,否则只需要y=sum(x)即可.另外,我猜题目的要求是不允许使用for语句.实际上n=1:100这样的语句,等同于for循环语句.
东乡族自治县17091302584: 24点游戏程序设计 - ?
堂畅感冒: #include#include using namespace std; const double MIN=1E-6; void Print(int *Rank,double *FourNum) { for(int i=0;icoutcout} void Calculate_24(int *Rank,int *FourNum,char *Oper,int i,int j,int k,bool def) { double res=0; switch(i) { case 0:res=...
东乡族自治县17091302584: 用MATLAB编写程序计算1+3+5+....(2n+1) - ?
堂畅感冒: 这不就是(n+1)*(n+1)么? syms n; sum = (n+1)^2;
东乡族自治县17091302584: 在matlab编写程序中什么时候要用点运算,什么时候不用 - ?
堂畅感冒: 两个矩阵或向量里面,对应位置的元素各自运算,就用点运算. 其他情况都是不用. 比如 a=[1 2 3 4]; b=[2 2 2 2]; 对应元素相乘就是 a.*b=[2 4 6 8]; 如果直接写 a*b会报错,因为直接写*就是矩阵乘法,a的列数不等于b的行数,不能相乘