首页 > 其他 > 详细

打电话-一个很神奇结构

时间:2020-07-12 22:03:24      阅读:77      评论:0      收藏:0      [点我收藏+]

打电话

? 一个合唱队共有15人,暑假期间有一个紧急演出,老师需要尽快通知到每一个同学,如果用打电话的方式,每分钟通知1人,请帮老师设计一个打电话的方案。

1. 老师依次给每个学生打电话

老师依次给所有学生拨打电话。耗时15分钟

技术分享图片

2. 老师让同学帮忙

老师依次给同学们拨打电话太耗时了。改变策略。

技术分享图片

老师拨打3个学生电话

  1. 10:00 老师拨打第一通
    1. 10:01 学生1拨打第一通
    2. 10:02 学生1拨打第二通
    3. 10:03 学生1拨打第二通
    4. 10:04 学生1拨打第二通
  2. 10:01 老师拨打第二通
    1. 10:02 学生2拨打第一通
    2. 10:03 学生2拨打第二通
    3. 10:04 学生2拨打第三通
    4. 10:05 学生2拨打第四通
  3. 10:02 老师拨打第三通
    1. 10:03 学生3拨打第一通
    2. 10:04 学生3拨打第二通
    3. 10:05 学生3拨打第三通
    4. 10:06 学生3拨打第四通

老师多拨打一个电话会节约时间吗?

技术分享图片

老师拨打4个学生电话

  1. 10:00 老师拨打第一通
    1. 10:01 学生1拨打第一通
    2. 10:02 学生1拨打第二通
    3. 10:03 学生1拨打第二通
  2. 10:01 老师拨打第二通
    1. 10:02 学生2拨打第一通
    2. 10:03 学生2拨打第二通
    3. 10:04 学生2拨打第三通
  3. 10:02 老师拨打第三通
    1. 10:03 学生3拨打第一通
    2. 10:04 学生3拨打第二通
    3. 10:05 学生3拨打第三通
  4. 10:03 老师拨打第四通
    1. 10:04 学生4拨打第一通
    2. 10:05 学生4拨打第二通
    3. 10:06 学生4拨打第三通

类似老师拨打5个学生电话然后每个学生在转发2个同学耗时也是一样的。还有办法继续加速吗?

3. 老师和同学们讨论出了新的模式

老师和同学只要有空闲就通知其他同学

技术分享图片

总结

其实第二种和第三种确实能减少通知时间,但是却隐藏了一个问题就是到底哪些同学是没有接到通知的。

这个问题如果是软件项目中,那么在接完电话的同学(处理完任务)在通知其他同学之前要先确认哪些同学没有收到通知(去中间件查询一下没有接收到通知的同学)

原文地址: https://github.com/malin1994515/my-learn/blob/master/0.Java-Learn/00/打电话.md

打电话-一个很神奇结构

原文:https://www.cnblogs.com/linma/p/13290164.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!