若已知一个(n-1)*(n-1)的上三角矩阵,基地址是sa[0],那么loc(aij)=sa[?]
时间: 2024-10-21 17:11:38 浏览: 32
在计算一个 (n-1) * (n-1) 的上三角矩阵中,元素 `aij` 的存储位置 `loc(a_ij)` 可以通过矩阵的索引来确定。由于这是一个上三角矩阵,意味着对角线以下的元素是零,所以只有主对角线和下对角线上的元素非零。
对于主对角线上(i = j)的元素,其索引可以直接从基地址开始加上 i 的值减一,因为数组下标从 0 开始计数。所以,如果 `i = j`,`loc(a_ij)` 应该是 `sa[i]` 或 `sa[j]`,即 `sa[i - 1]`。
对于下对角线上(i > j)的元素,它的索引比行索引小 `j`。因此,`loc(a_ij)` 将是 `sa[i - 1] + j`。
形式化表达就是:
- 如果 `i == j`,`loc(a_ij) = sa[i - 1]`
- 如果 `i > j`,`loc(a_ij) = sa[i - 1] + j`
所以,`loc(a_ij)` 的计算公式可以写作:
```c
if (i <= j) {
loc(a_ij) = sa[i - 1];
} else {
loc(a_ij) = sa[i - 1] + (j - 1);
}
```
阅读全文