语法点:must have done 表过去推测 (Modal Perfect for Deduction)
当我们看到证据、想推断"过去一定发生了什么"时,用 must have + 过去分词。它不是在说"过去必须做",而是"根据情况判断,过去一定做了"。本课里 Thompson 先生早上看到五个空酒瓶,于是推断 the ghost must have drunk(鬼一定喝了);"我"则推断 some villagers must have come in(一定是村民进来了)。与之相对,对过去的否定推测用 can't / couldn't have done(不可能做过),把握较小的推测用 may / might have done(可能做过)。
结构
| 推测程度 | 结构 | 例句 |
|---|---|---|
| 肯定推测(一定) | must have + 过去分词 | The ghost must have drunk the whisky. |
| 否定推测(不可能) | can't / couldn't have + 过去分词 | A ghost can't have moved the furniture. |
| 可能性推测(可能) | may / might have + 过去分词 | Some villagers may have come in. |
| 疑问 | Can + 主语 + have + 过去分词? | Can the ghost have drunk it all? |
注意:must have done 的否定不是 must not have done,而是 can't have done。间接引语中 must have done 形式不变。
课文中的例句
- [句 6] He also said that he had found five empty whisky bottles which the ghost must have drunk the night before. — 看到空瓶(证据)→ 推断鬼一定喝了酒;间接引语中 must have drunk 不变
- [句 7] When I suggested that some villagers must have come in for a free drink, Mr.Thompson shook his head. — "我"根据常识推断村民一定进来喝了酒
- [句 3] He told me that he could not go to sleep one night because he heard a strange noise coming from the bar. — 这是推测的"证据"之一:奇怪的声音
- [句 4] The next morning, he found that the doors had been blocked by chairs and the furniture had been moved. — 过去完成时被动,说明发现之前发生的事,也是推测的依据
补充例句
- The lights were on in the morning, so someone must have turned them on. — 早上灯是亮的,一定有人开了灯。
- The bottles were empty. Somebody must have drunk the whisky. — 瓶子空了,一定是有人喝了威士忌。
- A ghost can't have moved the furniture; it must have been the villagers. — 鬼不可能搬动家具,一定是村民干的。
易错点
- ❌ The ghost must drank the whisky last night. → ✅ The ghost must have drunk the whisky last night. — 情态动词后接 have + 过去分词,不能直接接过去式。
- ❌ The ghost must have drank the whisky. → ✅ The ghost must have drunk the whisky. — have 后要用过去分词 drunk,不是过去式 drank。
- ❌ The villagers must not have come in. → ✅ The villagers can't have come in. — 否定推测用 can't / couldn't have done,must not 表示"禁止"。
- ❌ Some villagers must come in for a free drink last night. → ✅ Some villagers must have come in for a free drink last night. — 推测已经过去的事必须用 must have done。