哈希(减)RUBY

时间:2018-11-14 08:18:35

标签: ruby hash

我有这个结构

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)

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

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

当减法大于100时,我们用第二个元素重复此操作

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

因为它小于100,所以我们在这里停止并将其保存在计数器中

如果通过键操作进行的减法小于100,则不能在那里进行减法运算,必须执行该操作,直到键所指向的第二个元素为止。

但是我该怎么做

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

1 个答案:

答案 0 :(得分:0)

这有意义吗?

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

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

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