错误代码参考另一篇博客: https://www.cnblogs.com/hi-9527/p/16308588.html
文章升华参考文献 https://zhuanlan.zhihu.com/p/145546574