假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。在某台计算机上,于t秒内实现并完成该算法。现有另一台计算机,其运行速度为第一台的128倍,那么在这台新机器上用同一算法在t秒内能解决多大输入规模的问题?
时间: 2023-03-20 16:03:25 浏览: 218
根据题目中的信息,可以得到在第一台计算机上,算法的输入规模为n时,计算时间为T(n) = 3*2^n,而在第二台计算机上,其运行速度是第一台计算机的128倍。因此,在第二台计算机上用同一算法解决同样规模的问题,所需要的计算时间是第一台计算机所需时间的1/128,即T'(n) = T(n) / 128。
为了在第二台计算机上在t秒内完成同样规模的问题,我们可以使用以下公式求解最大的n:
T'(n) = t
3*2^n / 128 = t
2^n = 128t / 3
n = log2(128t / 3)
因此,在第二台计算机上,用同一算法在t秒内能够解决的最大输入规模为log2(128t / 3)。
相关问题
假设某算法在输入规模为n时的计算时间为T(N)=3*(2^n)。在某台计算机上,于t秒内实现并完成该算法。现有另一台计算机,其运行速度为第一台的128倍,那么在这台新机器上用同一算法在t秒内能解决多大输入规模的问题?
根据题目中给出的算法时间复杂度,可以得出在第一台计算机上解决规模为n的问题所需的时间为3*(2^n)。假设在第一台计算机上解决规模为m的问题所需的时间为t秒,则有3*(2^m)=t。
现在考虑在第二台计算机上解决同一算法的问题。由于第二台计算机的运行速度是第一台的128倍,因此在同样的时间t内,第二台计算机可以完成第一台计算机128倍的工作量。因此,在第二台计算机上用同一算法在t秒内能解决的问题规模为:
m = log2(t*128/3)
其中,log2表示以2为底的对数。
假设某算法在输入规模为 n 时的计算时间为 T ( n )=3nlog n 。在某台计算机上实现并完成该算法的时间为 t 秒。现有另一台计算机,其运行速度为第一台的100倍,那么在这台新计算机上用同一算法在 t 秒内能解输入规模
为多少?
首先,我们可以通过输入规模为 n 时的计算时间 T(n) = 3nlogn 求出输入规模为 n 时的计算时间复杂度为 O(nlogn)。
接着,我们可以通过原先计算机的时间 t 和输入规模为 n 的计算时间 T(n) 推导出原先计算机能够处理的最大输入规模为:
t = 3nlogn
n = (t / 3) / logn
然后,我们可以根据新计算机的速度是原计算机的100倍,推导出新计算机能够处理的最大输入规模为:
n' = n * 100
= ((t / 3) / logn) * 100
≈ 210n
因此,在新计算机上用同一算法在 t 秒内能解输入规模为约为 210n 的问题。