问题规模的理解

假设某算法在输入规模为n时的计算时间为T=3*2n(2的n的次方).在某台计算机上实现并完成该算法在t秒.现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入输入规模为多大的问题?

 

我一开始看见速度是64倍,就想成相同时间内可以计算64倍,后来看了严奶奶关于问题规模的描述

 

 

 

“一个特定算法‘运行工作量’的大小,只依赖问题的规模,或者说,他是问题规模的函数”

 

不应该只是单纯的看计算问题的时间,而是从问题规模角度去分析

 

所以这一题

应该是A在t秒的时间内可以进行3*2n次运算

而B在t秒内的时间被可以进行3*2n*64=3*2n+6次运算,

可以看到其实在t的时间下,对于问题规模来说,A的规模为n=log2(t/3),B是A的64倍速度,可以处理的规模为n+6=log2(t/3)

 

posted @ 2020-11-16 22:24  落悠  阅读(2169)  评论(0编辑  收藏  举报