should/ought to have done 与might have done 的区别

问题描述:

should/ought to have done 与might have done 的区别

should/ought to have done 表示“过去本应该做某事却未做”,
might have done 表示“对过去某事的推测,认为某一件事情在过去可能发生了”