重心法是一种用于确定物体或点集重心的计算方法,常用于物流、城市规划等领域。以下是一个简单的重心法程序示例,使用C++编写:
```cpp
include include include using namespace std; // 定义一个结构体来存储点的坐标和权重 struct Point { double x; double y; double weight; }; // 计算重心的函数 pair double sumX = 0.0; double sumY = 0.0; double sumWeight = 0.0; for (const auto& point : points) { sumX += point.x * point.weight; sumY += point.y * point.weight; sumWeight += point.weight; } return {sumX / sumWeight, sumY / sumWeight}; } int main() { int n; cout << "请输入点的数量: "; cin >> n; vector // 输入每个点的坐标和权重 for (int i = 0; i < n; ++i) { cout << "请输入点 " << i + 1 << " 的坐标 (x y): "; cin >> points[i].x >> points[i].y; cout << "请输入点 " << i + 1 << " 的权重: "; cin >> points[i].weight; } // 计算重心 pair // 输出重心坐标 cout << "重心的坐标为: (" << centroid.first << ", " << centroid.second << ")" << endl; return 0; } ``` 程序说明: `calculateCentroid`函数接收一个`Point`结构体数组,并返回重心的坐标。 主函数 输入点的数量和每个点的坐标及权重。 调用`calculateCentroid`函数计算重心。 输出重心的坐标。 使用说明: 1. 编译并运行程序。 2. 输入点的数量和每个点的坐标及权重。 3. 程序将输出计算得到的重心坐标。 这个程序是一个简单的示例,实际应用中可能需要根据具体需求进行扩展和优化。结构体定义 :定义了一个`Point`结构体,用于存储每个点的坐标和权重。
计算重心函数: