百度2010校园招聘中的一道有意思的笔试题

来源:互联网 发布:工程中标数据网 编辑:程序博客网 时间:2024/04/30 19:32

题目是这样的:


有一台微型PC,有1KB内存,1MHz处理器(每秒可以转换10^6次状态),问:在可以终止的程序中(没有死循环的程序中),最长的程序需要执行多少时间?写清楚思路,可以自己进行其他条件的假设。

 

 

 

这道题刚一看一点头绪都没有,后来从状态转换的角度进行分析得出一个思路,不保证对,仅供大家参考。

 

 

 

 

解题思路:

 

1KB内存,即1000B=8000bit,所以最多可以表示2^8000个状态。

因为处理器是1MHz的,即每秒10^6次状态改变,所以,极限情况(理论情况)下,最长的可终止的程序可以执行:2^8000 / 10^6 秒。

 

考虑,不管是什么样的循环,在循环的某一时刻都应该落入上面的某一个状态中,所以我觉得我的想法正确。