我需要检查图像的内容长度是否已更改。但是,有些图像似乎在约15或20个字节内振荡。所以我想说:“如果这两个图像的内容长度在25个字节以内,则它们实际上是相同的。”
假设我有两个数字:first
和second
是正整数,而threshold
也是正整数。确定两个数字是否在阈值之内的最简单方法是什么?
答案 0 :(得分:2)
检查它们的绝对差是否在阈值内,
(first - second).abs <= threshold
或者检查它们之间的距离是否在-threshold..threshold
之间,像这样:
(-threshold..threshold).cover?(first - second)
等等:
(first - second).between?(-threshold, threshold)
答案 1 :(得分:2)
这对您有用吗?
def in_range(hi, lo, range)
(hi-lo).abs <= range
end
in_range(5, 10, 3) #=> false
in_range(7, 10, 3) #=> true
而且速度很快,无论距离如何
puts Benchmark.measure{ 10_000.times{in_range(50_000, 1_000_000_000, 53000)} }
#=>0.000000 0.000000 0.000000 ( 0.000936)
答案 2 :(得分:0)