加入了fangyu的算法(未完成)