我已经发现在另一个问题中提到矩阵加法是二次运算 https://stackoverflow.com/questions/1868009/speed-up-matrix-addition-in-c。但我认为这是线性的。
如果我将矩阵的大小加倍,我需要计算加法的两倍,而不是四倍。
主要分歧点似乎是问题的严重程度。对我来说,它是矩阵中元素的数量。其他人认为它是列数或行数,因此O(n^2)
复杂。
我将其视为二次运算时遇到的另一个问题是,这意味着将 3 维矩阵相加是三次,而将 4 维矩阵相加是O(n^4)
等等,尽管所有这些问题都可以简化为两个向量相加的问题,这有一个明显的线性解。
我是对还是错?如果错了,为什么?
正如您已经指出的,这取决于您对问题大小的定义:是元素总数,还是矩阵的宽度/高度。哪个是正确的实际上取决于矩阵加法所属的更大问题。
NB: 在某些硬件(GPU、向量机等)上,加法可能比预期运行得更快(即使复杂性仍然相同,请参阅下面的讨论),因为硬件可以一步执行多个加法。对于有限的问题大小(例如 n
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)