gpt4 book ai didi

ruby - 有没有办法找出数字在 ruby 范围内的位置?

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:37 25 4
gpt4 key购买 nike

假设我有一个 min 和一个 max 数字。 max 可以是任何值,但 min 将始终大于零。

我可以获得范围 min..max 并且假设我有第三个数字 count -- 我想将范围除以 10(或其他一些number) 以获得新的比例。因此,如果范围是 1000,它会递增 100、200、300 的值,并根据我的新比例找出计数在范围内的位置。因此,如果 count 为 235,它将返回 2,因为这是它在范围刻度上的位置。

我说的有道理吗?我正在尝试根据一系列值创建热图,基本上......所以我需要根据范围创建比例并找出我正在测试的值在新比例上的位置。

我正在处理类似这样的东西,但它没有这样做:

def heat_map(project, word_count, division)
unless word_count == 0
max = project.words.maximum('quantity')
min = project.words.minimum('quantity')
range = min..max
total = range.count
break_point = total / division
heat_index = total.to_f / word_count.to_f
heat_index.round
else
"freezing"
end
end

我认为我可能缺少一种更简单的 ruby​​ 方式。

最佳答案

为什么不直接使用算术和舍入?假设 number 介于 minmax 之间,并且您希望将范围拆分为 n_divx 是你想要找到索引的数字(根据上面看起来像 min = 0, max = 1000, n_div = 10, 和 x = 235):

def heat_index(x, min, max, n_div)
break_point = (max - min).to_f/n_div.to_f
heat_index = (((x - min).to_f)/break_point).to_i
end

然后 heat_index(235, 0, 1000, 10) 给出 2。

关于ruby - 有没有办法找出数字在 ruby 范围内的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334837/

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