gpt4 book ai didi

algorithm - 为什么在方阵乘法的递归中输入大小除以 2 而不是 4?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:56 24 4
gpt4 key购买 nike

分析方阵乘法运行时,了解到运行时是

T(N) = 8T(N/2) + O(N^2)

对于朴素的分而治之的方法,以及

T(N) = 7T(N/2) + O(N^2)

对于 Strassen 的方法。

为什么 N 除以 2 而不是 4?

我是怎么理解的,T(N/2)的系数(naive 为 8,Strassen 为 7)是每一层引入的递归次数,或者说子问题的增长率。除数是减少问题的因素。 O(N^2)加数是每个特定循环节点的运行时间。

如果朴素算法和施特拉森方法都将输出矩阵划分为N/2 x N/2矩阵,其中 N是行数和列数,问题不是减少了 4 倍而不是 2 倍,因为在每个级别我们都在解决 4 个较小矩阵的问题吗?

下面是我从 GeeksforGeeks 获得的朴素方法的图片:

Naive method image

最佳答案

来自 Introduction to Algorithms, 3rd Edition ,页。 77:

Let T(n) be the time to multiply two n x n matrices using this [the naive matrix multiplication] procedure.

n 不是任何一个矩阵中元素的数量,它是一个维度。因此,由于矩阵维度被递归地分成两半,因此除数是 2 而不是 4。

关于algorithm - 为什么在方阵乘法的递归中输入大小除以 2 而不是 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895524/

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