Algorithm 如何计算平面分布的引力中心?

Algorithm 如何计算平面分布的引力中心?,algorithm,Algorithm,我有一个数据集的二维分布,我想找到这些点的引力中心 我想做的是下面的代码 #include <stdio.h> #define SIZE 4 struct point { short x; short y; }; point find_gravitation(struct point set[], unsigned char size) { point ret; . . . ? . . . return ret; } int main(

我有一个数据集的二维分布,我想找到这些点的引力中心

我想做的是下面的代码

#include <stdio.h>

#define SIZE 4

struct point {
 short x;
 short y;
};

point find_gravitation(struct point set[], unsigned char size)
{
  point ret;
  .
  .
  .
  ?
  .
  .
  .
  return ret;
}

int
main(int argc, char **argv)
{
 struct point dataset[SIZE];
 struct point ret;

 dataset[0].x = 12;
 dataset[0].y = 24;

 dataset[1].x = 3;
 dataset[1].y = 5;

 dataset[2].x = 71;
 dataset[2].y = -6;

 dataset[3].x = -185;
 dataset[3].y = -26;

 ret = find_gravitation(dataset, SIZE);

 printf("gravitation center is: %d, %d\n", ret.x, ret.y);

 return 0;
}
#包括
#定义大小4
结构点{
短x;
短y;
};
点查找引力(结构点集[],无符号字符大小)
{
点ret;
.
.
.
?
.
.
.
返回ret;
}
int
主(内部argc,字符**argv)
{
结构点数据集[大小];
结构点ret;
数据集[0]。x=12;
数据集[0],y=24;
数据集[1],x=3;
数据集[1],y=5;
数据集[2],x=71;
数据集[2]。y=-6;
数据集[3]。x=-185;
数据集[3],y=-26;
ret=发现引力(数据集,大小);
printf(“引力中心是:%d,%d\n”,ret.x,ret.y);
返回0;
}

如何计算这一组的引力中心?

如果我解释正确:

因为您的点未加权,所以中心点将是:(平均值(x),平均值(y))

要计算平均x点,请将所有x值相加,然后除以点数。
要计算平均y点,请将所有y值相加,然后除以点数。

如果我的解释正确:

因为您的点未加权,所以中心点将是:(平均值(x),平均值(y))

要计算平均x点,请将所有x值相加,然后除以点数。
要计算平均y点,请将所有y值相加,然后除以点数。

要找到引力中心,还需要权重。假设权重设置为[i].w,则必须修改函数以返回结构,其中x=所有集合[i]的平均值。xy=所有集合[i]的平均值。yw=所有集合[i]的总和。w

要找到引力中心,还需要权重。假设权重设置为[i].w,则必须修改函数以返回结构,其中x=所有集合[i]的平均值。xy=所有集合[i]的平均值。yw=所有集合[i]的总和。w