zoukankan      html  css  js  c++  java
  • 矩阵连乘问题

    1 问题描述

    2 问题解决

    2.1 子问题提取和描述

    m[i, j],下标为i到j的矩阵相乘,i<=j,i、j属于{1,2,...,n}。连续相邻的几个矩阵相乘,它们同样也具有最小的计算次数。

    2.2 递推关系

    3 编码

    #include <iostream>
    #include <climits>
    #include <cstring>

    int p[5] = {2, 3, 4, 5, 8};

    int min(int m[5][5], int i, int j)
    {
        int sum = INT_MAX;
        if (i == j)
        {
            return 0;
        }

        for (int k = i; k <j; k++)
        {
            int tmp_sum = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j];
            if (tmp_sum < sum)
            {
                sum = tmp_sum;
            }
        }

        return sum;
    }


    int main(int argc, char* argv[])
    {

        int m[5][5];
        memset(m, 0, sizeof(m));
        for (int j = 0; j < 4; j++)
        {
            for (int i = 1; i < 5; i++)
            {
                if (i + j < 5)
                {
                    m[i][i + j] = min(m, i, i+j);
                }
            }
        }

        std::cout<<m[1][4]<<std::endl;

  • 相关阅读:
    桂林印象
    快变
    近期的事
    *C#中使用ref和out一点认识!*
    *在框架集页面放置TreeView控件时页面跳转的问题解决*
    *无法找到脚本库的问题*
    *Ajax.Net快速入门*
    *网页过期*
    *Prototype开发笔记*
    *正则表达式*
  • 原文地址:https://www.cnblogs.com/hustdc/p/8039255.html
Copyright © 2011-2022 走看看