什么算法可以找到一个范围内多个点的接近度百分比



在0到1的数字范围内,我定义了3个点:a点在0,B点在0.5,C点在1

将使用什么算法来找到";权重";或该范围内的值与3个点中的每一个的接近度的百分比

例如,在该范围内的值0.25可能具有朝向a的0.5、朝向B的0.5和朝向C的0的权重,并且值0.6可能具有朝向a的0.1、朝向B的0.7和朝向C的0.2的权重

有人给了我-1,如果你认为这是一个愚蠢的问题,请告诉我为什么它是愚蠢的,我真的想知道

我认为问题在于您没有准确定义权重。因此,我们可以选择任何看起来像这样的算法吗?

显而易见的做法是找到距离,将它们反转(1/x(,然后对它们进行归一化(找到总和为1但比率相同的值(。

  • 对于A=0.0、B=0.5、C=1.0,0.25的值将具有0.25、0.25、0.75的距离。将这些值反转得到4、4、1.3(总和为9.3(,然后对这些值进行归一化,得到(4/9.3=(0.428、(4/9.3+(0.428和(1.3/9.3=(0.142
  • 对于值0.6,距离将分别为0.6、0.1和0.4。将其反转得到1.66、10和2.5,并将其归一化得到0.113、0.706和0.177

这符合你想要的吗?这里的一个问题是,如果给定的值与A、B或C完全匹配,你会在中间被零除,因为这个值会得到无限的权重,但最终结果计算起来很琐碎:该值为100%,其余值为0%。

最新更新