algorithm - 什么算法可以找到范围内多个点的接近百分比
问题描述
在从 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%。
推荐阅读
- c++ - 如何在没有可变参数函数的情况下循环函数的参数
- javascript - 拆分网页不同标签中存在的每个单词
- android - 设置 AndroidAnnotations 的问题
- asp.net - 在 web.config 中从一个页面到另一个页面的简单重定向
- linux - 在 clamav yocto 中启用 pcre 支持
- c# - 如何使用 C# 合并包含所有者密码的 PDF 文档
- java - 从站点/页面读取数据时 Java 中的编码问题:
- .net - 如何在 WIX 中为意外的命令行参数产生错误?
- c# - 在 Blazor 中增加 TextArea
- jquery - 将类添加到固定 div 时