gpt4 book ai didi

c - 用 C 编写一个函数来计算 (nxn) 矩阵的 n 次方

转载 作者:行者123 更新时间:2023-11-30 15:21:32 25 4
gpt4 key购买 nike

我在两个矩阵的乘法算法中添加了一个 for,但它似乎不起作用。我需要在不使用指针、内存分配和仅使用基本指令(for's、while's、...)的情况下完成此任务

void product(double a[][20],double c[][20],int n,int d)
{
int i, j, k, l;

for(l = 1;l <= d; ++l) {
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
c[i][j] = 0;
for(k = 0; k < n; k++) {
c[i][j] += a[i][k]*a[k][j];
}
}
}
}
}

该函数应计算 A^d 并将其存储在 c[][20] 中;

最佳答案

您的代码尝试计算 A^(2^d),但它计算了 A^2 d 次。

您无法就地进行矩阵乘法,因为在计算结果时,您会覆盖值。因此,您需要临时空间来保存一份副本(除非 d = 0、1 或 2)。

将 C 设置为单位矩阵,如果 d = 0,则返回。否则设置 C = A 的副本,分配矩阵 B,然后对于 l = 1 到 d - 1,将 C 复制到 B,令 C = A * B..取消分配 B。

关于c - 用 C 编写一个函数来计算 (nxn) 矩阵的 n 次方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29547107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com