电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

2024年算法分析大作业VIP免费

2024年算法分析大作业_第1页
2024年算法分析大作业_第2页
2024年算法分析大作业_第3页
算法分析大作业动态规划方法解乘法表问题和汽车加油行驶问题目录1.动态规划解乘法表问题1.1问题描述------1.2算法设计思想------1.3设计方法------1.4源代码------1.5最终结果------2.动态规划解汽车加油行驶问题2.1问题描述------2.2算法设计思想------2.3设计方法------2.4源代码------2.5最终结果------3.总结1.动态规划解决乘法表问题1.1问题描述定义于字母表∑{a,b,c)上的乘法表如表所示:依此乘法表,对任一定义于∑上的字符串,适当加括号表达式后得到一个表达式。例如,对于字符串x=bbbba,它的一个加括号表达式为(b(bb))(ba)。依乘法表,该表达式的值为a。试设计一个动态规划算法,对任一定义于∑上的字符串x=x1x2…xn,计算有多少种不同的加括号方式,使由x导出的加括号表达式的值为a。1.2算法设计思想设常量a,b,c分别为1,2,3。n为字符串的长度。设字符串的第i到第j位乘积为a的加括号法有result[i][j][a]种,字符串的第i到第j位乘积为b的加括号法有result[i][j][b]种,字符串的第i到第j位乘积为c的加括号法有result[i][j][c]种。则原问题的解是:result[i][n][a]。设k为i到j中的某一个字符,则对于k从i到j:result[i][j][a]+=result[i][k][a]*result[k+1][j][c]+result[i][k][b]*result[k+1][j][c]+result[i][k][c]*result[k+1][j][a];result[i][j][b]+=result[i][k][a]*result[k+1][j][a]+result[i][k][a]*result[k+1][j][b]+result[i][k][b]*result[k+1][j][b];result[i][j][c]+=result[i][k][b]*result[k+1][j][a]+result[i][k][c]*result[k+1][j][b]+result[i][k][c]*result[k+1][j][c];输入:输入一个以a,b,c组成的任意一个字符串。输出:计算出的加括号方式数。1.3设计方法乘法表问题直观理解就是通过加括号使得最终运算结果为a,该问题与矩阵连乘问题类似,矩阵连乘是每一次加括号选择运算量最小的,写成数学表达式有:而乘法表问题则是计算所有加括号运算结果为a的情况数,并不要求输出加括号方式。那么可以从乘法的最小单元两个符号相乘的所有可能开始,接着在两个符号相乘的基础上计算三个符号相乘的所有可能。直到计算N长度的符号1-N的所有可能。可以定义一个三维数组a[n][n][3],n为输入字符串的长度,a[i][j][0]为从字符串中第i个元素到第j个元素的子串表达式值为a的加括号方式数,a[i][j][1]为从字符串中第i个元素到第j个元素的子串表达式值为b的加括号方式数,a[i][j][2]为从字符串中第i个元素到第j个元素的子串表达式值为c的加括号方式数。ﻫ由乘法表的定义则可知啊a[i][j][0]=(对k求和,k从i到j-1)a[i][k][0]*a[i][k+1][2]+a[i][k][1]*a[i][k+1][2]+a[i][k][2]*a[i][k+1][1];同理可得到a[i][j][1]和a[i][j][2]。ﻫ同时由上面的表达式可知,要计算a[i][j][],需先计算a[i][k][]和a[i][k+1][],这里k从i到j-1,故a[i][j][]可采取如下的计算次序1.4源代码#include"iostream"#include"algorithm"#include"fstream"usingnamespacestd;/*f[i][j][0]表示在ch[i]~ch[j]之间以某种方式加括号后,结果为af[i][j][1]表示在ch[i]~ch[j]之间以某种方式加括号后,结果为bf[i][j][2]表示在ch[i]~ch[j]之间以某种方式加括号后,结果为ca=a*c||b*c||c*ab=a*a||a*b||b*bc=b*a||c*b||c*c*/intf[50][50][3];charchars[3]={'a','b','c'};intmul(intn,charch[]){for(inti=0;i

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群