最近发现该问题在stack exchange中被人提问,并且有人对此做出了解答。
这个问题以及扩展问题,其实在物理领域中已经被深入研究过,被称为FMM(fast multipole method)。
主要参考文献 INTRODUCTION TO FAST MULTIPOLE METHODS,作者 LONG CHEN
其核心思想是利用泰勒展开。
该近似公式存在复杂度为O(n *log(n) *p)的算法。n为点的个数,p为泰勒展开的项数。
不过经过树的数据结构优化后,算法复杂度可以做到O(n*p)。