【问题标题】:Compared elementes of hash (subtraction) RUBY比较散列(减法)的元素 RUBY
【发布时间】:2018-11-15 05:18:58
【问题描述】:

我有这个结构

x = [8349310431, 8349314513]
y = [667984788, 667987788]
z = [148507632380, 153294624079]

map = Hash[x.zip([y, z].transpose).sort]
#=> {
#     8349310431=>[667984788, 148507632380],
#     8349314533=>[667987788, 153294624079]
#   }

并且我需要将键与其余键进行比较,但是如果键的减法小于 100,则必须比较键指向的第一个元素,如果元素的减法小于大于 100 该过程将重复使用关键指向的第二个元素

例子

 key[0] - key[1] = 8349310431−8349314533 = 4102 (with value absolute)

所以现在我们减去 key 指向的第一个元素,因为它大于 100 的减法

element1Key1 - element1Key2 = 667984788 - 667987788 = 3000 (with value absolute)

由于减法大于 100,我们对第二个元素重复此操作

 element2Key1 - element2Key2 = 15329460 - 15329462 = 2 (with value absolute)

因为它不到 100,所以我们在这里停下来,把它放在柜台里

如果自用keys运算后减法小于100,则不能停在那里,要一直到key指向的第二个元素为止。

但是我该怎么做

对不起我的英语,但我不会说,希望你能理解,谢谢

【问题讨论】:

  • 这个问题如果改成1-2位数字会好很多。
  • 你说得对,但我在上大学,他们会给我们的数据就是这么长
  • 您可以为我们编辑。
  • “我们在这里停下来,把它放在柜台里”——这是什么意思?您的预期结果如何?
  • 8349314533 来自哪里?还有 15329460 和 15329462?

标签: ruby hash


【解决方案1】:

这有意义吗?

x = [8349310431, 8349314513]
y = [667984788, 667987788]
z = [15329460, 15329462]

[x, y, z].detect { |a, b| (a-b).abs < 100 } # => [15329460, 15329462]

以防万一,为什么要构建哈希?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 2015-09-30
    相关资源
    最近更新 更多