【发布时间】:2015-02-11 13:24:36
【问题描述】:
我有一个包含主数据的数组,例如:
[1, 3, 7, 11]
和一个数据库,其中包含一个包含各种数字的数组的表,例如:
1) [1, 5, 7, 11]
2) [2, 3, 4, 8, 10]
3) [1, 3, 7, 11, 15]
...
我正在寻找一种简单的方法来计算哪些数组最接近主数据并相应地对其进行排名。结果是
- 没有 3 - 100% 匹配
- 没有 1 - 75%
- 没有 2 - 25%
这可能不是很困难,但由于某种原因,我无法理解它。 ruby 中的函数或 rails 中的 gem 可以帮助解决这个问题吗?
提前致谢!
【问题讨论】:
-
[11, 3, 7, 1, 15]à 100% 匹配吗? -
您能描述一下您的算法吗?是什么让 1 号匹配 75%,2 号匹配 25%,3 号匹配 100%?
-
@CarySwoveland 你说得对,它实际上不是 100% 匹配 - 它包含主数组中 100% 的数字,但只有 80% 匹配。如果我能同时强调两者就太好了。不知道这有多难……
-
@Stefan 我会尝试 :) 主数组包含 4 个值,因此每个匹配的值代表 25% 的增长。如果主数组有 5 个值,每个值代表 20%
-
您需要进行编辑以精确定义相似性度量的定义方式。不要试图在 cmets 中解释。
标签: ruby-on-rails ruby arrays sorting comparison