= ̄ω ̄=⭐ 2018-12-03 07:25 采纳率: 0%
浏览 995

求计算矩阵数乘,加法和行列式的c++程序

用多文件程序结构,并且能够对错误输入进行处理。最好能说明思路。谢谢大佬们

  • 写回答

1条回答 默认 最新

  • 尹纪超 2019-11-03 18:34
    关注

    /*矩阵相乘*/
    double** mulMatrix(double**a, double**b, int rowa, int cola, int colb)
    {
    double** mul = initializationMatrix(rowa, colb);
    for (int m = 0; m < rowa; m++)
    {
    for (int n = 0; n < colb; n++)
    {
    for (int k = 0; k < cola; k++)
    {
    mul[m][n] += a[m][k] * b[k][n];
    }
    }
    }
    return mul;
    }

    /*行列式*/
    double detMatrix(double**arr, int row, int col)
    {
    if (row != col)return -1;
    int*q = new int[row];
    for (int i = 0; i < row; i++) q[i] = i;
    double sum = 0;
    do{
    int cnt = 0;
    for (int i = 0; i < row; i++)
    {
    for (int j = row - 1; j > i; j--)
    {
    if (q[i]>q[j]) cnt++;
    }
    }
    double mul = 1;
    for (int m = 0; m < row; m++)mul *= arr[m][q[m]];
    if (cnt % 2 == 0)sum += mul;
    else sum -= mul;
    } while (next_permutation(q, q + row));
    return sum;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料