当前位置: 首页 > news >正文

建设监理收录网站百度24小时人工客服电话

建设监理收录网站,百度24小时人工客服电话,动态网站的技术有,比分网站制作1.代码 public class MatrixChainMultiplication {public static void main(String[] args) { // 在该代码中,我们首先创建了两个n * n的矩阵m和s,分别用于记录最优值和分割点。 其中m 矩阵 通过i j 来显示在i到j的矩阵链中最优解 // // …

1.代码

public class MatrixChainMultiplication {public static void main(String[] args) {
//        在该代码中,我们首先创建了两个n * n的矩阵m和s,分别用于记录最优值和分割点。 其中m 矩阵 通过i j 来显示在i到j的矩阵链中最优解
//
//        然后,我们将i = j时的m[i][j]赋值为0,因为一个矩阵的乘积为0。
//
//        接下来,我们使用L循环枚举子问题规模,i循环枚举左端点,j循环枚举右端点,并使用k循环枚举分割点。
//
//        对于每个分割点k,我们计算最优值q,然后将q与m[i][j]进行比较,如果q小于m[i][j],则更新m[i][j]和s[i][j]。
//        通过公式算法导论15.7
//
//        最后,我们返回m[1][n-1],即原问题的最优值。
//
//        该算法的时间复杂度为O(n^3),其中n是矩阵的数量。int[] p = {30, 35, 15, 5, 10, 20, 25};System.out.println("最少的乘法次数为:" + matrixChainOrder(p));}
​public static int matrixChainOrder(int[] p) {int n = p.length;// 创建n * n的矩阵m和s,用于记录最优值和分割点int[][] m = new int[n][n];int[][] s = new int[n][n];// i==j时,m[i][j]=0,因为一个矩阵的乘积为0for (int i = 1; i < n; i++) {m[i][i] = 0;}for (int i = 0; i < m.length; i++) {System.out.println(Arrays.toString(m[i]));}
​// L是子问题规模for (int L = 2; L < n; L++) {// i是左端点,j是右端点,k是分割点for (int i = 1; i < n - L + 1; i++) {int j = i + L - 1;m[i][j] = Integer.MAX_VALUE;// 枚举分割点k,求解最优值for (int k = i; k < j; k++) {int q = m[i][k] + m[k + 1][j] + p[i - 1] * p[k] * p[j];System.out.println("m[i][k]: "+m[i][k] );System.out.println("m[k + 1][j]: "+m[k + 1][j]);System.out.println("i:"+i+" k:"+k+" j:"+j);System.out.println(q);if (q < m[i][j]) {m[i][j] = q;s[i][j] = k;}}}}// 返回最优值return m[1][n - 1];}
​
​
}

2.原理

自己看算法导论吧

我再看到

这条公式的时候很困惑,然后自己手算了他给的第一个例子才知道这是正确的.

3.问题

具体的问题已经在代码注释中讲解完毕

4.进阶

输出只是I一个普通的递归而已

package collection;
​
public class printOptimalParens {public static void matrixChainOrder(int[] p) {int n = p.length - 1;int[][] m = new int[n + 1][n + 1];int[][] s = new int[n + 1][n + 1];for (int i = 1; i <= n; i++) {m[i][i] = 0;}for (int len = 2; len <= n; len++) {for (int i = 1; i <= n - len + 1; i++) {int j = i + len - 1;m[i][j] = Integer.MAX_VALUE;for (int k = i; k <= j - 1; k++) {int q = m[i][k] + m[k + 1][j] + p[i - 1] * p[k] * p[j];if (q < m[i][j]) {m[i][j] = q;s[i][j] = k;}}}}System.out.println("Optimal Parenthesization:");printOptimalParens(s, 1, n);}
​public static void printOptimalParens(int[][] s, int i, int j) {if (i == j) {System.out.print("A" + i);} else {System.out.print("(");printOptimalParens(s, i, s[i][j]);printOptimalParens(s, s[i][j] + 1, j);System.out.print(")");}}
​public static void main(String[] args) {int[] p = {30, 35, 15, 5, 10, 20, 25};matrixChainOrder(p);}
}
​
​
((A1(A2A3))((A4A5)A6))
http://www.wangmingla.cn/news/152981.html

相关文章:

  • 成华区统一建设办公室网站免费写文章的软件
  • 医疗医院网站建设哈尔滨关键词优化方式
  • 网站建设结构图快推达seo
  • 做企业商城网站要多少钱sem是什么意思?
  • 东营网站建设seo常德政府网站
  • 58同城做公司网站怎修改广告视频
  • 商城网站优化方案新手做网络销售难吗
  • 深圳住房与建设网站用asp做的网站
  • 企业网站的新闻资讯版块有哪些hyein seo
  • 网站建设丨找王科杰信誉十大短视频平台排行榜
  • 天津企业网站开发拼多多运营
  • 做网站去哪里好竞价外包托管费用
  • 网站推广排名教程网络营销策划书的范文
  • 网站建设模板源代码广告关键词有哪些类型
  • 以前做弹幕现在的电影网站生活中的网络营销有哪些
  • 企业网上书店网站建设设计百度搜索引擎提交入口
  • 哪里有网站建设中心品牌策划方案
  • 专业移动微网站设计网页设计模板
  • wordpress评论表单网站优化北京seo
  • 党建网站建设的目的2023半夜免费b站推广
  • 免费下载教学设计的网站推广普通话手抄报简单漂亮
  • 上海做机床的公司网站免费二级域名查询网站
  • 网站空间控制友链查询站长工具
  • 解决wordpress更改新域名后网站不能访问的问题seo排名点击工具
  • 温州网站制作费用营销策略ppt模板
  • 做网站最贵专业地推团队电话
  • 怎么学做网站跟聊天软件谷歌代运营
  • 百度地图推广一年多少钱国内seo服务商
  • 深圳网站开发外包公司一个网站可以优化多少关键词
  • 母版做双语网站安卓优化大师下载安装到手机