0

我正在用 Cocoa 编写程序,但我认为解决方案必须非常通用。

我有一组由 3D 向量表示的点。每个点都有一个分配给它的权重。权重在 0 到 1 的范围内。所有权重的总和不等于 1。

应该如何从这样的集合中计算加权平均点?

编程或纯数学解决方案都会有所帮助。当然,如果 Cocoa 有一些特定的工具来解决这个任务,我将非常感谢这些信息。

4

1 回答 1

2

简单地将所有按权重缩放的向量相加。最后,除以所有权重的总和。这与首先​​将所有权重归一化为总和为 1 具有相同的效果。

伪代码:

sum = [0, 0, 0]
totalWeights = 0
for each point p with associated weight w:
    sum += p * w
    totalWeights += w
mean = sum / totalWeights
于 2012-10-31T13:41:58.257 回答