在 C++ 中求矩阵的最大值、最小值、平均值
如何在 C++ 中找到给定矩阵 (matrix[i][j]
) 中的最大值、最小值和平均值。类型为 unsigned long double。
How do I find the maximum, minimum and average values in a given matrix (matrix[i][j]
) in C++. The type is unsigned long double.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这里没有什么聪明的事情可以做(只是伪代码,因为这闻起来像硬件):
您可以对该循环进行微优化以提高或降低其效率,但是您无法在算法上做任何事情来提高效率聪明的。无论如何,您都需要查看所有
i*j
条目。There's nothing clever to be done here (pseudocode only, since this smells like HW):
You can micro-optimize that loop to make it more or less efficient, but there's nothing you can do algorithmically to be more clever. You need to look at all
i*j
entries no matter what.也许是这样的:
最大值:
最小值:
平均:
Maybe this:
Maximum:
Minimum:
Avarage:
假设矩阵是一个实际的 C++ 二维数组,您可以使用标准算法吗?
未经测试的代码:
请注意,这会对矩阵进行额外的传递,以便清楚地了解它在做什么。
如果它是另一种容器类型,例如向量的向量,那么您必须在每一行上运行算法并获取每一行的最大值。
Assuming
matrix
is an actual C++ two-dimensional array could you use standard algorithms.Untested code:
Do note that this does extra passes over the matrix at the benefit of being clear what it's doing.
If it's another container type like a
vector
ofvector
s then you'd have to run the algorithms on each row and take the max of each row.循环遍历所有值,记录当前最大值、最小值和累积和。然后将累积和除以元素数量即可得到平均值。
Loop through all the values, recording current max, min, and cumulative sum. Then divide the cumulative sum by the number of elements to get the mean.