15.5.4 更详细的算法