gpt4 book ai didi

c - 关于如何解决这个矩阵/2x2D 数组计算的任何想法?

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:54 30 4
gpt4 key购买 nike

我有 2 个 3x3 矩阵,每个矩阵都用二维数组表示。第一个矩阵包含元素 [我存储 PID,元素的范围可能来自数百万,我只是在我的实际应用中将其简化为 A,它是一个整数范围,A 可以是 200,B 可以是 200000]例如,矩阵元素

{ A B C
B D C
C F B }

second 保存每个位置的权重例如,矩阵权重

{ 9 7 5
8 6 1
7 5 4 }

所以在上面的例子中,B 是最重的元素,因为它的权重是 7+8+4 其次是 C 等等,

如何找出前 3 个最高元素?

一个解决方案是:就是将元素存放在一个单独的数组A[9][2](element, value and unique)中,循环元素矩阵然后再循环遍历value数组,填入元素对应的值。[迭代创建一个 9x2 键值矩阵,迭代排序,迭代删除重复项(因为需要合并权重),- 有更好的方法吗? ]

还有其他有效的方法吗? [提示:我只需要 3 个,所以我不应该使用 9x2]

最佳答案

假设您知道只有字母 A-Z 可用,并且它们是大写字母。

char elems[3][3] = {
{ 'A', 'B', 'C' },
{ 'B', 'D', 'C' },
{ 'C', 'F', 'B' }
};

你也同样设置了你的权重...

您可以像这样跟踪计数:

int counts[26] = {0};

for( int i = 0; i < 3; i++ ) {
for( int j = 0; j < 3; j++ ) {
counts[elems[i][j] - 'A'] += weights[i][j];
}
}

那么这只是找到三个最大计数的索引的情况,我相信您可以轻松完成。

关于c - 关于如何解决这个矩阵/2x2D 数组计算的任何想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448155/

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