问题规模的理解


假设某算法在输入规模为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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM