【问题标题】:Is there a way to compare how similar a sequence of numbers is to another sequence of numbers in Ruby?有没有办法比较一个数字序列与 Ruby 中另一个数字序列的相似程度?
【发布时间】:2019-01-28 01:07:58
【问题描述】:

我正在尝试比较 Ruby 中两个序列的相似程度。例如,1234657890 到 1234567890 的相似度为 80%。我曾考虑将数字减少 1 位然后检查,但它使该示例 40% 相似

【问题讨论】:

  • 为什么第一个示例中的两个字符串 90% 相似?
  • 因为只有 1 个字符不同。呃,也许你可以说是 80%,但这只是一个例子
  • 好的,那么请使用正确的信息编辑您的示例。
  • 您需要定义“相似”的含义。有许多不同的可能答案。例如。 abeace 是否与 abeabce 相似?
  • 也许这个答案会对你有所帮助stackoverflow.com/questions/16323571/…

标签: arrays ruby math numbers compare


【解决方案1】:

你可以这样做:

num_str1 = '1234567890'
num_str2 = '1234657890'

num_str1.chars.zip(num_str2.chars).count { |a, b| a == b }
  #=> 8

这会将每个字符串转换为字符数组,然后按索引配对元素,然后再进行比较。百分比计算留作练习。有关所用方法的更多信息,请参阅ruby-docs.org

【讨论】:

    猜你喜欢
    • 2018-12-04
    • 2021-03-26
    • 1970-01-01
    • 2020-06-18
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多