Сравненные элементы хеша (вычитания) РУБИН - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть эта структура

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 голосов
/ 15 ноября 2018

Имеет ли это смысл?

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

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

На всякий случай, зачем создавать хэш?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...