关于用程序毁灭地球的深层思考
2019-05-05 本文已影响0人
Hellowhuo
有这样一个有趣的问题,讲的是编程思想,如何用程序毁灭一个地球?有趣的答案是写一个可以毁灭行星的函数,然后把地球当做变量传递进去……
可以说这个很有编程的思想了,考虑了代码的可复用性,这样你毁灭别的行星,也只需要把行星传递进这个函数就可以了。
毁灭行星(毁行函数)
但是真正毁灭一个行星的函数具体应该怎么写呢?
毁灭一个行星,我觉得你首先需要知道这个行星的体积,假设你已经写好了一个毁灭一立方米正方体空间的函数(这个函数后面简称毁1函数),那么只要计算出行星的半径,就可以计算出完全包裹住行星的外层正方体的体积,行星的半径为r,这正方体的体积 为 8r的立方米,而其实行星不是真正的圆球体,比如地球其实是椭圆球,那么为了不浪费毁1函数的多次执行次数所浪费的时间和性能,我们需要进行优化,需要知道椭球的长直径和短直径,然后毁灭一个长方体空间,而且最好可以找到这俩个直径的关联性,这样就可以再函数内部进行计算出所需要的参数,这样就可以传递一个参数就可以完成毁灭了(当然不止这一个参数至少还需要一个宇宙空间位置的参数需要传递),这样一个大致毁灭行星的函数就已经写好了
毁灭卫星(毁卫函数):
当然我们还需要利用前面的毁1函数和毁灭行星的逻辑写一个毁卫函数
毁灭恒星(毁恒函数):
结合前面写的思路,毁恒函数也就完成了
函数打包:
简单的逻辑判断一个行星周围有没有卫星,
并把这个函数扩展,既可以判断行星周围有没有卫星,也可以判断恒星周围有没有行星,这个函数名为(存在函数)
结合存在函数和毁卫函数和毁行函数写一个毁行系函数
结合存在函数和毁行系函数和毁恒函数写一个毁恒系函数
这个毁恒系函数算是最终的函数了,你可以传递一个太阳系进去,而且这个函数也是可复用的,你也可以进一步打包