首页 > 解决方案 > 什么算法可以找到范围内多个点的接近百分比

问题描述

在从 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,如果您认为这是一个愚蠢的问题,请告诉我为什么它很愚蠢,我真的很想知道

标签: algorithmmath

解决方案


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

显而易见的事情是找到距离,将它们反转(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%。


推荐阅读