Performance 我如何通过归纳法证明这两种算法中的第二种更快?

Performance 我如何通过归纳法证明这两种算法中的第二种更快?,performance,algorithm,proof,induction,Performance,Algorithm,Proof,Induction,我有两种算法 A. Solves problem in 2^n seconds. B. Solves problem in n^2 + 1,000,000 seconds. 我怎样才能归纳地证明B比A快 我被告知n>2的2^n>2n+1可能对这个问题有用。我一直在绞尽脑汁,解决不了这个问题。谢谢 “n”相当于程序的大小 编辑:用于所有n>19。 解决方案: 前提:n^2+100000019.9321时才会更快。如果你不需要实际的工作,那就是我得到答案的地方 对于任何小于19.9321的数字,

我有两种算法

A. Solves problem in 2^n seconds.

B. Solves problem in n^2 + 1,000,000 seconds.
我怎样才能归纳地证明B比A快

我被告知n>2的2^n>2n+1可能对这个问题有用。我一直在绞尽脑汁,解决不了这个问题。谢谢

“n”相当于程序的大小

编辑:用于所有n>19。

解决方案:

前提:n^2+1000000<2^n

依据:
n=20
1000400<1048576正确

归纳法:

(n+1)^2 + 1000000 > 2^(n+1)
n^2 +2n +1 +1000000 > 2^(n+1)
Apply 2^n > 2n + 1
n^2 + 1000000 > 2^(n+1)

最后一行表示B总是大于A。

B只有在n>19.9321时才会更快。如果你不需要实际的工作,那就是我得到答案的地方


对于小于19.9321的任何数字,则A将更快。

B仅当n>19.9321时才会更快。如果你不需要实际的工作,那就是我得到答案的地方


对于任何小于19.9321的数字,A将更快。

Python作为计算器:

>>> n = 20
>>>
>>> 2**n
1048576
>>> n**2 + 1000000
1000400
>>>

Python作为计算器:

>>> n = 20
>>>
>>> 2**n
1048576
>>> n**2 + 1000000
1000400
>>>

正如你所说,基本情况已得到证实。 ie
k^2=5

对于归纳法,让我们假设

k^2<2^k

啊,我感觉我快到了。有什么帮助吗?

正如你所说,基本情况已经证明。 ie
k^2=5

对于归纳法,让我们假设

k^2<2^k

啊,我感觉我快到了。有什么帮助吗?

我不知道如何使用归纳法,但我认为这可能会有帮助: 注意,首先,对数是一个单调递增的函数。 所以 当a>b(i)时,日志(a)>log(b)

注意log(n^2)>log(n^2+1000000)(ii)

此外,log(n^2)=2log(n)

显然,对于大n,nlog2>2 logn, 所以

所以, 日志(2^n)>日志(n^2)>日志(n^2+1000 000)来自(ii)

所以,

      log(2^n) >  log(n^2 + 1 000 000) 
再次从(i)开始


你觉得怎么样?

我不知道如何使用归纳法,但我认为这可能会有帮助: 注意,首先,对数是一个单调递增的函数。 所以 当a>b(i)时,日志(a)>log(b)

注意log(n^2)>log(n^2+1000000)(ii)

此外,log(n^2)=2log(n)

显然,对于大n,nlog2>2 logn, 所以

所以, 日志(2^n)>日志(n^2)>日志(n^2+1000 000)来自(ii)

所以,

      log(2^n) >  log(n^2 + 1 000 000) 
再次从(i)开始



你觉得怎么样?

是的,n是程序的大小。所以从小到大。区分3次。抱歉,所有的n>19。这更像是一个数学问题,而不是编程…这是算法分析。O(2^n)>O(n^2)——指数vs.几何。是的,n是程序的大小。所以从小到大。区分3次。抱歉,所有的n>19。这更像是一个数学问题,而不是编程…这是算法分析。O(2^n)>O(n^2)——指数vs.几何。然而,在这种情况下,
n
几乎肯定是一个整数。我试图理解的是如何通过
归纳法证明B更快,在这种情况下,
n
几乎肯定是一个整数。我试图理解的是如何通过
归纳法
证明B更快。归纳法包括在移动到k,k+1之前证明初始值。答案中不包括这一点。是的,通常为1证明,为k假设,为k+1推断。当语句对所有自然数都有效时,MI起作用。因此,应用2^n>n^2的逻辑是行不通的!基数为n=20。导入步骤是最难的部分。你介意添加中间步骤吗(包括当你使用归纳假设时)?为什么基本情况n=20,做一些心理计算,我可以看到k^2=5,因为它是n^2+1000000。B仅在n>19时更快。归纳法包括在移动到k,k+1之前证明初始值。答案中不包括这一点。是的,通常为1证明,为k假设,为k+1推断。当语句对所有自然数都有效时,MI起作用。因此,应用2^n>n^2的逻辑是行不通的!基数为n=20。导入步骤是最难的部分。你介意添加中间步骤吗(包括当你使用归纳假设时)?为什么基本情况n=20,做一些心理计算,我可以看到k^2=5,因为它是n^2+1000000。B仅在n>19时更快。
  2^n > n^2 + 1 000 000