使用数学获取范围内的数字

Getting a number in a range using math

本文关键字:范围内 数字 获取      更新时间:2023-10-16

有没有办法取一个数字并使用一些数学,将其转换为两个数字之间的范围,例如 [LB,UB]。 我知道我可以做一些类似x = x % UB的事情来获得0-UB之间的数字。 但是我如何获得它,使其在LB-UB之间。我尝试了x = (x % UB) + LB但是我不知道如何确保一旦添加LB,x就不会超过UB。

怎么样(x % (UB-LB)) + LB

您只需获得范围的mod并将数字移动下限即可。

请注意,您可能需要在范围中添加一个 (UB-LB+1) 如果它包含。 即使用上面的公式,如果 LB = 10 和 UB = 20,您将获得从 10 到 19 的数字(包括 19)。这就是常规模组的工作方式。

对于封闭范围 [LB、UB],您只需在 mod 范围中添加 1:

(x % (UB-LB+1)) + LB

尝试

x = (x % (UB - LB +1)) + LB

你所做的是测量你想要让你的号码进入(UB - LB + 1)的间隔,或者如果你不想让UB出去,就忘记+1。这是您拥有的选项数量。然后添加LB,以便他的结果在正确的范围内。

这甚至适用于负数,只要 UB> LB。

这将

起作用

x = x % (UB - LB) + LB