见上
AB两地距1000公里,现有一头骆驼从A到B地,骆驼每次能运1000支,走一公里吃一支,共3000支香蕉,求骆驼到B地剩的香蕉最多数??
- 提问者网友:沉默的哀伤
- 2021-04-28 22:13
- 五星知识达人网友:西岸风
- 2021-04-28 22:34
总共有3000只香蕉,有一只骆驼每一次只能带1000只香蕉,每1公里吃1只香蕉,没有香蕉吃它是不肯走的,A-B 点距离1000公里,如果这个骆驼要从A点到B点有什么办法可以让更多的香蕉剩下来?如何做到?如何最有效率的运最多的香蕉到B点?
已有的解答:
1、第一次带上1000根,走300公里后,放下400根,这样还剩300根,刚好能返回A点, 再带上1000根,再走到300公里处,放下400根....反复这样走三次, 这样300公里处能有1500根,然后重复上一种方法再走300公里,最后到终点后能生200根香蕉,当然'300'这个数可以设成未知数,列出方程,求出极值。
2、第一次的回头是必须的,但是如果还做第二次回头的话数量就减少啦,应该是第一次就走400公里,然后回头再装一次,第二次也是重复,每一次可以放下200根香蕉,就是400根了。。然后第三次是不用回头的,装上1000根后走到400公里时还剩600根香蕉,就把原来剩下的400根给装上,刚好1000根走完剩下的600公里,到了终点还剩400根,这样应该是最多的了。
3、尽量减少往返,在300米处放下400颗,往返3次,300米处此刻有1200颗,350米处放下500颗,往返两次,350米处有1000颗,一口气走到底,还剩350颗。
4、排除法,1000米设置一个回头点,是不可行的。1000米设置两个回头点A,B,也就是将1000米分成3段。设每段长度为从起点到A点X1,A点到B点X2,B点到终点X3,
X1+X2+X3=1000
在A点需要来回5次才能将3000的香蕉运到A点。那么A点有3000-5*X1的香蕉,
通过推理(细节省略),3000-5*X1小于等于2000,
这样到B点 3000-5*X1-3*X2,这个值小于等于1000,
终点剩下3000-5*X1-3*X2-X3,根据上面的判断,如果都取等于的话:
X1=200;X2=334
最终剩下532。
5、首先:0~200km 每往返2.5次,依次把所有的香蕉运动到下1公里,共消耗1000个,剩2000个,
其次:200~533km 每1km往返1.5次,依次把所有的香蕉运送到下1公里,共消耗999个,剩1001个,
最后:533~1000km,满载1000个香蕉去终点(留一个在533处),路上吃掉467个,还剩1000-467=533个。
6、分三个阶段,1、三次运2000个到200公里处;再用两次运1000个前进333公里;最后拿上1000个香蕉走完剩下的467公里,共节余533个。
7、第一次:带1000根香蕉走到250公里,留下500跟香蕉,返回吃完剩余的250根,走了500公里
第二次:再带1000根香蕉走到500公里处,留下250根香蕉,返回到250公里处从留在这里的500根中取250根,返回,走了1000公里
第三次,带上最后的1000根香蕉走到250公里处,带上这里的250根,继续走到500公里处再带上这里的250根,继续走剩余的500公里,最后剩余500根香蕉,走了1000公里
总计走了2500公里,剩余500根香蕉。
8、每次最多带1000根,所以2001到3000根之间需要跑5趟(加上两个回去的趟数),如果2000或以内的根数也跑5趟的话就不合算。2000及以内需要跑3趟,1000及以内需要跑1趟,所以第一次跑可以一口气跑200(3000-5*200=2000),如果跑的比200少也无所谓,多跑几次,一样的效果。第二次跑333(2000-3*333=1000)(多余的一根不要了)。第三次可以带上1000根只跑一趟。到终点可以剩下1000-(1000-200-333)=533。
9、刚刚只考虑了来回走五遍,但没有考虑一次最多带1000根。就是说如果只有2000根,只要来回走3遍。
(1)带上1000根走到200公里处,放下600根,回到A点只剩0根;带上1000根走到200公里处,放下600根,回到A点只剩0根;再带上最后1000根走到200公里处,放下800根。在200公里处共有2000根。
(2)带上1000根从200公里处走到533公里处,放下334根,回到200公里处剩0根;带上最后1000根从200公里处走到533公里处,放下667根。现在在533公里处共有1001根,带上1000根,从533公里处走到B点,剩533根。
10、前面要尽量多带香蕉,后面到了只剩1000了就一直往前,这样消耗最少。前面多带时,设立回头点,其实是具体点不重要,只要不太大,每公里回一次和两公里回是基本一样的。就按每公里每公里的前进把香蕉多带,刚开始是每前进一公里把所有的都搬运要回头两次消耗5只香蕉,200公里后剩下2000,前进每公里只需要回头一次消耗3只,再前进333公里,就只剩下1001只(多了1只,我们应该在出发时就给骆驼),就再也不回头到最后,能搬运1000-533,就是467只。
11、我是这么想,先不管AB中间到底需要几个停留点才能得到最佳答案,最关键的一点是:
*********骆驼无论从哪个停留点出发,满载(或者越接近)跑到下一个停留点是效率最高的。而效率越高越能省下更多的香蕉*********
设, x = A至停留点1
1, 有3000根香蕉,就意味着在第一个停留点上骆驼必须跑三次(第三次不用返回)即,第停留点1的香蕉剩余值一定为:(1000-2x)*2 (1000-x)=3000-5x
2.1, 假设只有1个停留点,根据刚才说的,x=400的时候效率最高(因为在停留点1能剩下1000根),即在只有一个停留点的情况下,跑到终点可以剩下400根香蕉
假设有2个停留点, 并设y = 停留点1 至 停留点2
2.2, x=200效率最高,此时在停留点1能剩下2000根(即2000),这个时候问题就变成了2000根香蕉跑完800米。那在停留点2剩下的香蕉数就变成了:(1000-2y) (1000-y)=2000-3y
2.2.1, 按照从A点到停留点1的结论,y=333的时候效率最高,因为这个时候在停留点2剩下了1001根香蕉。(即带了1000根香蕉跑完467米,最终省下533根)
首先需要明确思考的基本原则:让吃了香蕉的骆驼在走路的时候尽量多负重,或者说让它吃香蕉时身边的香蕉保持最多。最直接的算法是让它吃一只香蕉,然后看它能把所有剩余的香蕉运多远。比如开始3000只香蕉需要运2.5个往返也就是5个单程,所以一只香蕉只能让它运0.2公里。之后再吃下一只香蕉,重复此过程。
另外需要和考官明确一点:吃香蕉这一动作是瞬时还是连续过程?或者说骆驼是吃完香蕉再走路还是边吃香蕉边走路?这可能会造成最后结果有少量出入、
--------------------------
先假设吃香蕉的过程是瞬时的,而且是先吃完香蕉再走路,可有如下过程:
第一次从0公里推进至0.2公里,往返两次半,总行程1公里,消耗1只香蕉
第二次从0.2公里推进至0.4公里,往返两次半,总行程1公里,消耗1只香蕉
....
第五次从0.8公里推进至1公里,往返两次半,消耗1只香蕉
以上五次累计推进1公里,消耗香蕉5根
重复上述过程,至200公里处,消耗1000只香蕉,还剩2000只香蕉
之后从200公里推进到200.33公里,往返一次半,总行程1公里,消耗1只香蕉
从200.33公里推进到200.67公里,往返一次半,消耗1只香蕉
从200.67公里推进到201公里,往返一次半,消耗1只香蕉
重复上述过程,至533公里处,消耗999只香蕉,还剩1001只香蕉
此时让骆驼吃掉一只香蕉,然后驮着1000只香蕉出发直达目的地。期间描述如下:
在534公里处,骆驼需要吃掉一只香蕉才肯再走
......
在1000公里出,已到达终点,不需再喂骆驼香蕉
因此到1000公里处时,一共消耗466只香蕉,最终剩余534只香蕉
-------------------------
进一步分析,上述过程可以简化为三段运输:
第一次从0公里直接推进至200公里,往返两次半,消耗1000只香蕉,还剩2000只
第二次从200公里直接推进至533公里,往返一次半,消耗999只香蕉,还剩1001只
第三次在533公里吃掉一只香蕉后,从533公里直接推进至1000公里,过程中再消耗466只香蕉,最终剩余534只
-------------------------
又如果假设吃香蕉的过程是连续过程,是边吃完香蕉边走路,那么上述过程的后段变化如下:
在533公里处骆驼吃一只香蕉的过程中往返1.5次,可以将1000只香蕉向前运1/3公里
也就是说在533.33公里处,还可以剩余1000只香蕉,这样到达1000公里时,可以剩余533.33只香蕉。
当然如果1/3只香蕉不算的话,可以算做533只。但是根据假设,吃香蕉是连续过程,因此确实是剩余了533.33只香蕉。换一个说法,在连续过程的假设条件下,骆驼是能够把533只香蕉运到1000.33公里处的