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;

  • 相关阅读:
    think in java
    TASLock TTASLock
    多线程
    jenkins unable to delete file
    ubuntu sun-jdk
    py2exe
    memcached安装
    redis安装
    ubuntu安装ssh
    mysql远程访问
  • 原文地址:https://www.cnblogs.com/hustdc/p/8039255.html
Copyright © 2011-2022 走看看