我有这个结构
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,则不能在那里进行减法运算,必须执行该操作,直到键所指向的第二个元素为止。
但是我该怎么做
对不起,我的英语,但是我不会说,希望您能理解,谢谢
答案 0 :(得分:0)
这有意义吗?
x = [8349310431, 8349314513]
y = [667984788, 667987788]
z = [15329460, 15329462]
[x, y, z].detect { |a, b| (a-b).abs < 100 } # => [15329460, 15329462]
以防万一,为什么要构建哈希?