问一道小学数学题

  • p
    ph_d
    小学学而思里的 iOS fly ~
  • q
    q1215313
    回复1#99123

    前几天d版刚发,(12)(2)(5 10)(1)(12),耗时2+2+10+1+2,17HiPDA·NG
  • a
    aiki3066
    几年级的?

    感觉这种题目思考起来挺费劲的。。
  • 9
    99123
    回复4#aiki3066

    四年级,唉
  • b
    b0207191
    1. 某夜,有个团伙要过桥,该桥每次只能通行2个人,只有一个手电筒,过桥必须持有手电筒。这些人单独过桥的时间从小到大分别为t1、t2、t3、t4、t5 ………
    2. 请写程序计算出这伙人过桥需要的最短时间。

    3. (提示:假设是四人,如果t1=1,t2=2,t3=5,t4=10,最短用时为17)

    4. 昨天公司领导出了上面逻辑题,看着挺有意思,自己初略思索了下,琢磨最短用时应该19才是,后面某一同事提了个方案:
    5. t1t2一起过,t1回来,t3t4过去,t2回来t1t2过去,最短用时确实17,此处完美利用两个最长时t3和t4一起过河,t1和t2作为回桥递送手电筒而节省时间差,方法挺巧妙有点意思,但当时总感觉此法还有点欠考虑。
    6. 后来下班地铁上无聊思索致此事,心里嘀咕如果t1和t2相差很大,这种借助t2回传,应该肯定没t1做回传效率高才是。。。

    7. 晚上哄着小宝差不多睡着时,捧着手机看到群里有同事讨论此题的编程,心头一热乎,拿着笔和纸验证了下前面的顾虑,当t1=1,t2=8,t3=9,t4=10,最短用时应该是29而不是35,嘿!越来越有点意思,于是乎继续思考:

    8. 方式1,t1作为来回传递手电筒,总耗时s1=t2+t1+t3+t1+t4

    9. 方式2,借助t1和t2,将t4和t3送过桥的方式,总耗时s2=t2+t1+t4+t2+t2

    10. 当s2<s1时,也就是2*t2<t1+t3,采用方式2过桥时间最短,否则方式1更佳!


    11. 后来公司领导说,如果推广到5个、N个。。。

    12. 心理嘀咕了下,方式2的方式其实是通过t1和t2将最慢的两人t3和t4送过桥而耗时最短,所以理论上不管4个5个还是N个,通过上面的逻辑判断,应该都能做到推广吧,有点晚也就没去验证了。

    13. 今早看群里还有同事讨论此事,于是乎自己也感兴趣拿着之前同事群里发的代码做了下修改:

    14. function across_time(args){
    15. var ret = 0;
    16. var _tmp = args.sort(function(a,b){return a-b;});
    17. console.log(_tmp);

    18. if (args.length < 3)
    19. {
    20. ret = Math.max(args[0]||0,args[1]||0);
    21. return ret;
    22. }

    23. if (_tmp.length == 3) {
    24. ret = _tmp[1] + _tmp[0] + _tmp[2];
    25. console.log(ret);
    26. return ret;
    27. }

    28. for(var i=_tmp.length-1;i>0;i=i-2){
    29. if (i >= 3) {
    30. if (2 * _tmp[1] <= _tmp[0] + _tmp[i]) {
    31. ret += _tmp[1] + _tmp[0] + _tmp[i] + _tmp[1] ;
    32. } else {
    33. ret += _tmp[i] + _tmp[0] + _tmp[i - 1] + _tmp[0];
    34. }
    35. }else{
    36. for (var j = i; j > 0; j--) {
    37. ret += _tmp[j];
    38. }
    39. if (i % 2 == 0) {
    40. ret += _tmp[0];
    41. }
    42. }
    43. }

    44. console.log(ret);
    45. return ret;

    46. }

    47. 验证了下群里同事发的几组数据,应该没啥问题,编程的乐趣源于思考的过程并从中发现乐趣!

    48. 以上仅是个人见解,也许也有问题,欢迎讨论

    49. 测试demo
    50. ————————————————
    51. 版权声明:本文为CSDN博主「zb872676223」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    52. 原文链接:https://blog.csdn.net/zb872676223/article/details/80205953
    复制代码
  • r
    richzz
    这个描述有歧义吧,我理解成最后4条船同时触岸了&#128531;
  • j
    jiuzhege1
    每次同时过去2条,但1条要返回。

    题都不能说清楚
  • 水森活
    这种题目看的头晕也叫我儿子做一下。