合理安排时间(沏茶问题)
有些事情可以同时做——合理安排顺序,节省等待时间。关键策略是画「流程图」:先找出哪些事必须先做(有先后依赖),哪些事可以同时做(互不依赖),然后把能并行的任务放在等待时间里完成——让每一分钟都不浪费。
在数学地图上的位置
📖 一杯茶里的数学——从沏茶到运筹学
1965年,中国著名数学家华罗庚在《统筹方法平话》一书中,用一个「沏茶」的例子向全国人民讲述了什么是「统筹」。客人来了要沏茶——你需要:洗水壶(1分钟)、烧开水(15分钟)、洗茶壶(1分钟)、洗茶杯(2分钟)、拿茶叶(1分钟)。怎么做最省时间?很多人说「按顺序来」——洗水壶→烧开水→洗茶壶→洗茶杯→拿茶叶→沏茶,总共20分钟。但华罗庚画了一张流程图:洗水壶(1分钟)→烧开水(15分钟)——在烧水的15分钟里,去洗茶壶(1分钟)、洗茶杯(2分钟)、拿茶叶(1分钟),这些总共4分钟,在15分钟里轻松完成。沏茶总时间:1+15=16分钟,比「按顺序做」节省了4分钟!华罗庚说:这就是「统筹方法」——找到「主要矛盾线」(洗水壶→烧开水这条必须串行的线),然后把其他任务穿插在等待时间里完成。一杯茶里的数学,后来发展成了运筹学(Operations Research)——管理整个国家生产计划的大科学。
🏛 从工厂秒表到一杯茶:优化的百年智慧
1 / 21911年,美国费城的钢铁厂里,一位叫泰勒的工程师拿着秒表走来走去。他盯着工人铲煤——弯腰、铲起、转身、抛进炉——每个动作记下时间。然后他重新设计:用什么姿势铲最省力?每次铲多重效率最高?中间休息几次最好?他通过「优化动作顺序和并行安排」,让每人的铲煤量从每天16吨提到59吨,工资涨了60%!泰勒说:「做任何事都有『最佳方法』(the one best way)——不是靠经验猜,而是靠分析。」泰勒的科学管理后来启发了整个运筹学领域——沏茶问题里的「找到等待时间并利用它」,就是泰勒思想的简化版:分析每个任务→找出哪些可以并行→重新排列→节省时间。泰勒拿秒表在工厂做的事,就是你在纸上画沏茶流程图做的事。
🧱 理解它的三个层次
数学概念不能只靠记忆——先动手,再画图,最后才用符号。这就是 CPA 教学法。
实物模拟——在课桌上「沏一杯茶」
准备道具:一个水壶(代表「洗水壶+烧开水」15分钟)、一个茶壶(代表「洗茶壶」1分钟)、几个茶杯(代表「洗茶杯」2分钟)、一小包茶叶(代表「拿茶叶」1分钟)。让学生两人一组,一个人负责「执行任务」,另一个人用手机计时。做两遍:(1)第一遍按顺序一个一个做——记录总时间;(2)第二遍先洗水壶然后「开始烧水」(用一个15分钟的沙漏或计时器模拟),在等待烧水的期间完成洗茶壶、洗茶杯、拿茶叶——记录总时间。对比两次时间——学生亲手体验「并行」的威力。
🖐 拖拽交互流程图/甘特图——用时间轴可视化任务安排
画一条水平时间轴,从0开始每格1分钟。在时间轴上方画出「主要任务线」(必须串行的):洗水壶(0~1)→烧开水(1~16)。在时间轴下方画出「并行任务」:洗茶壶(1~2)、洗茶杯(1~3)、拿茶叶(1~2)——这些都在烧水的时间段(1~16)内完成。让学生观察:所有并行的任务都在「烧开水」这条主线的时间跨度内。关键发现——总时间不是所有任务时长之和(1+15+1+2+1=20),而是「最长路径」的长度(1+15=16)。这张图让学生第一次接触到「关键路径」的概念。
✏️ 动手画图关键路径法——找出不可或缺的「瓶颈线」
将所有任务列成表格:任务名称、所需时间、前置任务(必须先完成的)。然后画「有向图」:节点=任务完成状态,箭头=任务(标注时间)。从起点到终点找出耗时最长的路径——这就是「关键路径」(Critical Path),它决定了总工期。要缩短总时间,必须缩短关键路径上的任务——非关键路径上的任务再怎么缩短也没用(因为它们的等待时间本来就有富余)。例如沏茶问题中「洗水壶→烧开水」是关键路径(16分钟),洗茶壶、洗茶杯、拿茶叶都不在关键路径上——它们的等待时间15分钟远远大于各自的耗时,所以完全不影响总时间。让学生理解:「让总时间更短」的唯一办法是让「最长的串行任务」变短或者被拆散并行。
👆 点击交互💡 一句话讲清原理
总完成时间 = 关键路径的长度(最长的不可并行的任务链)。优化策略是:识别依赖关系→发掘并行机会→将可并行任务填充到等待时间内→缩短关键路径。
沏茶问题(任务调度问题)的解决步骤:(1)列出所有任务及每项任务所需时间;(2)确定任务之间的依赖关系——哪项任务必须在哪项之后?(如「烧开水」必须在「洗水壶」之后);(3)画出流程图(节点网络或甘特图)——标明哪些可以并行(没有依赖关系)、哪些必须串行(有依赖关系);(4)找出关键路径——从开始到结束耗时最长的那条任务链(这条链上每个任务完成时间的推迟都会直接推迟总完成时间);(5)将可并行任务安排在等待时间段内——只要等待时间窗口足够大,并行任务不影响总时间。需要注意的是:并行不等于「忽略依赖」。洗茶壶不能和「洗水壶之前」并行(因为还没开始),但可以和「烧开水期间」并行(因为这段时间已经在进行中了,且不依赖洗茶壶完成)。
⚠️ 孩子最容易卡住的地方
❌ 把「同时做」理解为「所有事一起开始」——认为只要把任务堆在一起就是最优
原因:学生初听「合理安排时间」,以为秘诀就是「能一起做的都一起做」——忽略了依赖关系。「烧开水」必须在「洗水壶」之后——不能一起开始。过于激进地并行可能导致逻辑错误。
怎么办:引入「前置条件」的概念——每件事必须先问:「做这件事之前,哪件事必须已经完成?」用表格列两列:任务 | 前置任务。让学生看清楚——依赖关系像锁链,「洗茶壶」和「烧开水」没有锁链连接(可以并行),但「烧开水」和「洗水壶」是锁住的(必须先后)。并行只能在「没有锁链连接」的任务之间进行。
❌ 认为总时间=所有任务时间相加,不理解「等待窗口」内的时间可以「复用」
原因:日常经验中「做完一件事再做下一件事」是默认模式,学生(甚至很多成人)习惯串行思维——「一件事花3分钟,另一件花5分钟,总共就是8分钟」。这种思维在处理没有并行需求的生活场景时没问题——但遇到可以并行的场景时就会浪费大量时间。
怎么办:用物理对比来破直觉:把「烧开水」想象成一个15分钟的「沙漏」——沙漏启动之后你不需要一直盯着它。在沙子流完的15分钟里,你的双手是自由的——可以做其他事。这15分钟不是「空等时间」,而是「自由时间」。「等待」不等于「你不能动」——只有「串行依赖」才要求你等。让学生总结:需要「人等」的时间 vs 不需要「人等」的时间。
❌ 所有任务都想往最大的等待窗口里塞——塞不下了还在塞
原因:学生一旦理解了「利用等待时间」,就「上瘾」了——无论什么任务都想往最大的等待窗口里挤。但如果等待窗口只有5分钟,而要塞进去的任务需要8分钟——超出的3分钟会让总时间延长。本质上,学生的认知从「串行思维」跳到了「过度并行思维」——没有评估等待窗口的大小。
怎么办:加上约束条件:「并行任务的总耗时不能超过等待窗口的长度」。比如烧开水15分钟,同时要洗菜5分钟+切菜8分钟+部分炒菜=至少要13分钟——没问题。但如果等待窗口只有10分钟,任务要13分钟就不行。引入检查:「等待窗口够不够大?」→用「窗口长度vs并行任务总时长」来判断。如果不够大→要么部分串行、要么换到另一个等待窗口。
✅ 检验一下:你真的懂了吗?
认知科学发现:努力回忆比反复阅读更有效。试着回答下面问题,不要偷看答案。
Q1.小明的早晨:穿衣(3分钟)、刷牙洗漱(5分钟)、热牛奶(4分钟)、吃早饭(10分钟)、整理书包(3分钟)。热牛奶需要用微波炉(放进去就不用管了)。问小明最短需要几分钟才能出门?展开
💡 提示:先找依赖关系:穿衣→吃早饭(不能光着吃)。刷牙可以在热牛奶的同时做吗?整理书包呢?找出必须串行的最长路径。
安排:穿衣(3分钟)→热牛奶(4分钟)——在热牛奶的4分钟内,可以去刷牙洗漱(5分钟?不行!热牛奶只有4分钟窗口,刷牙要5分钟——但刷牙可以部分重叠。最优安排:穿衣(3分钟)→同时热牛奶(4分钟)+刷牙(先刷牙4分钟,等牛奶好了再刷1分钟)→吃早饭(10分钟,同时整理书包3分钟)。关键路径:穿衣3分钟→刷牙5分钟(与热牛奶部分重叠,但要多出1分钟)→吃早饭10分钟=18分钟。如果热牛奶放穿衣之前……实际上最优可能是:穿衣3分钟→刷牙(开始)+热牛奶(开始),刷牙5分钟(热牛奶4分钟已经完成)→吃早饭10分钟(整理书包3分钟并行)=3+5+10=18分钟。
Q2.妈妈要完成:洗菜(5分钟)、切菜(8分钟)、淘米(2分钟)、煮饭(30分钟)、炒菜(10分钟)。炒菜必须在切菜之后,煮饭必须在淘米之后。其他没有依赖。问最短需要多少分钟?画出流程图。展开
💡 提示:煮饭30分钟是一个大「等待窗口」——在这30分钟里可以完成哪些事?淘米必须在煮饭前,洗菜和切菜不依赖煮饭。
最优流程:淘米(2分钟)→煮饭(30分钟)。在煮饭的30分钟内:洗菜(5分钟)→切菜(8分钟)→炒菜(10分钟),共23分钟,完全在30分钟窗口内。总时间=淘米2分钟+煮饭30分钟=32分钟。关键路径是「淘米→煮饭」,非关键路径「洗菜→切菜→炒菜」全部在煮饭的等待时间内并行完成。如果等煮完饭再洗菜,总时间=2+30+5+8+10=55分钟——节省了23分钟!
🌍 在生活中遇见它
- •早上起床到出门:你早上有6件事要做——穿衣(3分钟)、刷牙洗脸(5分钟)、烧水(8分钟)、吃早饭(10分钟)、整理书包(3分钟)、穿鞋(1分钟)。烧水的时候你可以同时穿衣服和刷牙——总共只需要18分钟而不是30分钟!你每天都在做「沏茶问题」。
- •妈妈做饭的智慧:妈妈做一顿饭——淘米(2分钟)、煮饭(30分钟)、洗菜(5分钟)、切菜(8分钟)、炒菜(10分钟)。她不会等煮完饭再洗菜——在煮饭的30分钟里完成洗菜、切菜、炒菜,饭好了菜也好了。这就是「并行思维」。
- •游乐园排队:你到了游乐园——过山车排队要40分钟,旋转木马排队要10分钟,碰碰车排队要20分钟。你先排哪个?如果在过山车排队时让爸爸帮你排碰碰车——省下来的时间可以多玩一个项目!