矩阵连乘算法

news/2024/9/24 7:44:58/

矩阵连乘:


#include<iostream>
#define inf 0x7fffffff
using namespace std;
int a[256] = { 0 };//存储矩阵的行和列 
int m[256][256] = { 0 };//存储i到j的最少计算次数 
int s[256][256] = { 0 };//存储i到j的中转站k 
void m_print(int i, int j)
{if (i == j){printf("M%d", i);}else{printf("(");m_print(i, s[i][j]);m_print(s[i][j] + 1, j);printf(")");}
}
int matrixMultiple()
{int n = 0;scanf("%d", &n);for (int i = 1; i <= n + 1; i++){scanf("%d", &a[i]);}for (int d = 2; d <= n; d++)//d个矩阵相乘 {for (int i = 1; i <= n - d + 1; i++)//斜着到第i个 {int j = i + d - 1;m[i][j] = inf;for (int k = i; k <= i + d - 2; k++){int temp = m[i][k] + m[k + 1][j] + a[i] * a[k + 1] * a[j + 1];if (temp < m[i][j]){m[i][j] = temp;s[i][j] = k;}}}}printf("%d ", m[1][n]);m_print(1, n);return 0;
}

输入个数为6,输入矩阵维度为:30,35,15,5,10,20,25

测试结果:
在这里插入图片描述

数据m截图:
在这里插入图片描述

数组s截图:

在这里插入图片描述


http://www.ppmy.cn/news/1435050.html

相关文章

spring-core:理解@AliasFor注解的作用

AliasFor是spring注解体系中一个非常重要且基础的注解。顾名思义&#xff0c;它的基本作用就是为注解字段定义一个别名。 基本作用&#xff1a;字段别名 Testpublic void test3AliasFor() {try {{CasbanScan casbanScan AnnotationUtils.findAnnotation(UserSummy.class, Cas…

如何修改WordPress数据库表前缀以提高安全性

WordPress作为世界上最受欢迎的内容管理系统之一&#xff0c;吸引了数以百万计的用户。然而&#xff0c;正因为其广泛的使用&#xff0c;WordPress网站也成为了黑客攻击的目标之一。其中一个最常见的安全漏洞是使用默认的数据库表前缀wp_&#xff0c;使得黑客能够更轻松地进行大…

面向对象六大设计原则

1. 单一职责原则&#xff0c;一个合理的类&#xff0c;应该仅有一个引起它变化的原因&#xff0c;即单一职责&#xff0c;就是设计的这个类功能应该只有一个&#xff1b; 优点&#xff1a;消除耦合&#xff0c;减小因需求变化引起代码僵化。 2. 开-闭原则&#xff0c;讲的…

卡尔曼滤波器(二):Simulink卡尔曼滤波器模块使用

观看MATLAB技术讲座笔记&#xff0c;该技术讲座视频来自bilibili账号&#xff1a;MATLAB中国。 本节在Simulink中用卡尔曼滤波器来滤除传感器噪声&#xff0c;准确估算单摆摆角。 一、单摆模型简介 不考虑摩擦时&#xff0c;下图所示的单摆力学平衡方程为&#xff1a; m l 2…

TypeScript基础入门(一、常用类型)

目录 第一章 前言 1.1 介绍TypeScript 1.2 TypeScript相比Js的优势 1.3 使用TypeScript的准备工作 第二章 TypeScript的数据类型 2.1 TypeScript的常用类型 2.1.1 概述 2.1.2 TS使用JS基本数据类型 2.1.2.1 number 2.1.2.2 string 2.1.3.3 boolean 2.1.2.4 null 2…

借鉴行业巨头,构建策划知识体系,助你成为下一个营销天才

策划是一门理论与实践结合的学问&#xff0c;而策划人需要将理论和实践有机的结合起来&#xff0c;才能实现策划理论知识与实际操作相结合的目的。 很多策划人并不会系统的学习策划知识体系&#xff0c;只是将学到的理论知识碎片化的了解一下&#xff0c;如果没有完整的理论体…

数据结构与算法-砖墙问题

砖墙问题 你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同&#xff08;也就是一个单位高&#xff09;但是宽度不同。每一行砖块的宽度之和相等。 你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过&#xff0c;就不算穿过…

使用 hiredis 客户端库封装一个简单的 Redis 类

目录 思考一下redis编程的整个过程。 我们作为redis客户端。需要跟redis服务器交互。 封装 Redis 的 C 类的过程可以分为以下几个步骤&#xff1a; 一个完成发布订阅功能的 Redis 类 思考一下redis编程的整个过程。 我们作为redis客户端。需要跟redis服务器交互。 那说白了…