代码修改完毕，加入了改进的模拟代码，并且修正了一个错误