不是!
魏东生习惯递归运算是因为简单,一个for循环就能搞定问题。然而,第四种设计方案其实并不能削减运算量。如果真用一个for循环递归运算,有兴趣可亲自试试,绝对累死你的电脑。
魏东生习惯递归运算处理类似问题,是指数学思维的习惯。实际程序编程中,魏东生绝对不敢搞楼层一百乃至一千级别的递归运算。为了减少计算机运算量,魏东生会修正程序设计,譬如引用简单的数列求和公式,譬如将迭代公式转换成通项公式,等等。话说,这也侧面证明,程序设计的基础是实用数学。魏东生回到高中时代,之所以简单翻了翻数学课本就能轻松考到满分,就是是因为这么多年来,他从未离开过实用数学。
另外,就像迭代公式最方便人类理解和记忆,许多程序优化方案都是基于人类视角。计算机智能生命是软件与硬件的统一,它处理问题时还要考虑硬件的负担,考虑每一条集成电路的均衡利用,宁肯用第一种方案无脑暴力解决实际问题,也不会采用for循环模块迭代公式提前寻求最优解。
计算机智能生命是生命,不是神,不可能诞生就醒悟最优等的数学解决方案。
计算机智能生命,像初生婴儿,它需要时间成长,它需要时间自我优化。
高楼扔鸡蛋问题,只是举例比喻说明计算机智能生命的劣势。真实情况下,计算机智能生命蓝藻、绿藻、橙藻都不会蠢到采用从1层试到100层的方案。蓝藻等计算机智能生命,比你想象中聪明,却不是电影小说中臆想出来无所不能的神。
回到最初话题。橙藻因为进化程度较低,它辅助魏东生汇编网络游戏主程序时,肯定会生成一堆臃肿低效源代码。为了提高网络游戏的普适度和运行效率,魏东生需要耗费大量精力排查这些臃肿低效源代码,更换为高效精简的设计方案。然而,魏东生的技术水平有限,他无法完美解决所有问题,有的优化方案,前世有印象的模块,即时可以补全;有的优化方案,努努力,也能想到精简思路;更多的优化方案,魏东生也束手无策。
凡此种种,哪怕有橙藻辅助,魏东生也不可能变魔术般变出一款网络游戏。
【This chapter is finished reading】