gpt4 book ai didi

Ruby 量化一个范围

转载 作者:数据小太阳 更新时间:2023-10-29 08:30:45 24 4
gpt4 key购买 nike

我有一个定义一组整数阈值的 Ruby 数组

thresholds = [under_threshold_1, under_threshold_2, ..., under_threshold_n, over_threshold]

我想将任何整数映射到对应于阈值数字的值。基本上

if threshold_a <  number < threshold_b
return threshold_a
end

在 Ruby 中有没有很酷的方法来做到这一点?我需要处理“边缘”案例 < threshold_1> threshold_over .我只能想出一组(丑陋但有效的)if 语句或在数组上循环。

我实际上可以自由地按照我想要的方式对其进行建模(如果更方便的话,我可以将数组更改为其他内容)

我在想也许有一种很酷的方法可以在 case/when 子句中标明阈值

case number
when 0..threshold_1 then 0
when threshold_i..threshold_i+1 then i
else n
end

# example
thresholds = [ 4, 8, 10 ,12 ]

quantify(1) = 0
quantify(4) = 1
quantify(11) = 3
quantify(50) = 4

最佳答案

这个怎么样?

thresholds = [ 4, 8, 10, 12 ]

def which_threshold(thresholds, n)
thresholds.find_index {|t| n < t } || thresholds.size
end

p which_threshold(thresholds, 1) # => 0
p which_threshold(thresholds, 4) # => 1
p which_threshold(thresholds, 11) # => 3
p which_threshold(thresholds, 50) # => 4

关于Ruby 量化一个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com