日期:2014-05-17  浏览次数:20440 次

一道有点意思的编程题 --看看谁的方案最优
某型号飞机加满油能绕地球飞半圈,假设有数驾同类型加满油的飞机,并且它们在空中可以相互加油,请问如何用最优的办法让一架飞机绕地球飞一圈。  
  前提,没有飞机坠毁,飞机可以不同时起飞,但起飞地点相同。  
  请提出编程思路?(使用的飞机最少?耗油最少?)


------解决方案--------------------
飞机需要在1/4加满油后飞到3/4点处,在这两个点给加油应该算是最优的了,无法证明,感觉而已。
A,B,C飞机起飞到1/4处,B,C分别将自己的1/4给A,A就有了满箱油,可以飞到3/4处。
D,E两架飞机飞到1/8处,分别给B,C加1/4的油,这样B,C,D,E都可以返回到起始点。
F,G两架飞机到3/4处分别给A加1/4的油,这样A就可以飞回起始点。F,G可以飞到7/8点处。
H飞机飞到7/8处给F,G分别加1/4箱油,F,G,H可以返回。
上述答案无法证明是最优答案,但肯定是可行的方案。
至于怎么用计算机编程,没想出来如何实现,坐等高手。。。