使用数学获取范围内的数字
Getting a number in a range using math
有没有办法取一个数字并使用一些数学,将其转换为两个数字之间的范围,例如 [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
相关文章:
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 如何找到给定范围内除以给定数字时具有一定余数的值的数量?
- 我应该如何使用remove_if删除两个数字范围内的元素
- C++ 如何在给定范围内将数组中的数字相加?
- 计算数字范围内特定数字的出现次数
- 在给定范围内数字的最大值
- 如何在数组中的范围内添加所有数字?然后找到该范围的平均值
- 从TextFile中读取数字,并检查它们是否在范围内
- 如何在BST中从最高到最低打印特定范围内的数字,访问的节点最少
- 如何在包含不同数字的范围内找到整数
- 循环直到整数输入在所需范围内无法处理非数字字符输入
- 检查拼写数字是否在C++范围内
- 如何确保数字在一定范围内
- 正在检查排序列表中是否有一个范围内的数字
- 使用cctype库搜索函数,以查找某个范围内的数字字符数
- 使用数学获取范围内的数字
- C++操作 ASCII 中的数字以仅保留在字母范围内
- RSA程序只对特定范围内的数字进行加密和解密
- 在检查数字是否在范围内时,无符号int的滚动问题
- 如何检查两个数字是否在浮点类型的精度限制的有效数字"x"范围内?