... must have V-ed ...
Anyway, he must have eaten a lot because now he is fat.
You must have mistaken her for her sister. 你一定是把她误认为是她的姊妹了。
They must have left. 他们一定是离开了。
The rubbing must have worked. 搓揉一定是有效了。
They must have read the article. 他们一定读过这篇文章。
You must have seen him before. 你以前一定见过他。
He must have forgotten my name. 他一定忘了我的名字。
He must have told you about it. 他一定告诉过你这件事。
Tom must have taken your dictionary by mistake. 汤姆一定是弄错了才拿了你的字典。
The poet must have been very young when he wrote this poem.诗人写这首诗时一定非常年轻。
... may have V-ed ...
说明︰此句型意为"很可能曾经…"。表示对过去之事做不太肯定的推测。而"may／might＋原形<动词>"是对现在或未来事物做推测。might have 所表示的可能性要比 may have 低一些。
He may have overslept this morning. 今天早上他或许睡过头了。
The tea is hot; he may have been here before. 茶还热着，不久前他很可能在这里。
He may have known the truth; otherwise he wouldn't be so angry now.
The boy might have known the truth, but I am not quite sure.
... cannot have V-ed ...
说明︰此句型意为"不可能曾经…"。是对过去之事做否定的推论，此时一定要用 cannot have 或 cannot，不能使用 must not have 或 must not。而"cannot＋原形<动词>"是对目前或将来之事做否定的推论。
She cannot have written the letter herself. 这封信不可能是她自己写的。
He is honest, so he cannot have stolen my money.他是个老实人，所以他不可能偷了我的钱。
He cannot have caught a cold, because I saw him dancing with Mary the same day.