这句话时态不对吧?

问题描述:

这句话时态不对吧?
they must have been several hundred people present just before the show began.
后面那句是过去时,但是前面那句是现在完成时,连着现在的,怎么可能before?

我觉得没错(除了they应该是There),对过去事实的判断,用must have done应该是符合语法的,虽然事情是以前的,但“判断”这个动作是说话的时候做的,“一定有几百人是在展会开始之前到场的”.站在现在的角度对展会开始之前的情况作判断,能理解吧?你画一个时间轴。(现在)一定有几百人了在展会开始(过去)之前。现在在过去之前?这个上面不太好画图,这样说吧:动词用什么时态,要看它的主语处在什么时候做的这件事,对吧?虽然几百人到会这件事是发生在过去的,但“must”(肯定)这个动作是说话时做的,也就是一个判断的动作(姑且把判断也理解为一个动作),所以不用变(其实must 也没有过去式),但由于判断的事在过去,所以不说must be,而说must have been。这个是有点绕,我举个简单点的例子吧:I believe that he killed her. 你不觉得有错吧?I believe that he had killed her before you arrived here. 也没错吧?两句说的都是过去的事,但判断都是做的,所以主句动词believe不用变。