检查数字是否达到阈值
Check if a number has touched threshold
我有一个变量A(初始化为零),变量B(初始化为常量整数X)
变量 A 增加不均匀,例如: +1, +3, +7, + 24.......
我想检查变量 A 是否达到了变量 B 的预定义阈值,我尝试使用 Mod 运算符,但由于变量 A 以不均匀的格式增加,我无法准确检查 @ 变量 A 的哪个点已超过变量 B 阈值。
例如:案例1
变量A - 12变量B - 20- 输出 - A 尚未触及阈值
案例2
变量A - 19变量B - 20- 输出 - A 尚未触及阈值
案例3变量A - 25变量B - 20- 输出 - A 已触及当前阈值
案例4变量 A - 41变量B - 20- 输出 - A 已触及阈值
案例5变量A - 48变量B - 20- 输出 - A 没有触及下一个阈值,因为 20+20+20 没有发生。
编辑:
案例 5 变量 A - 48 变量B - 20 - 第一个阈值 当变量 A 大于或等于变量 B (20) 时将达到, 当变量 A 大于或等于时,将达到第 2 个 Threashold 将达到 2XVariableB(40),当变量A更大时将达到第3个阈值 大于或等于 3XVariableB(60)
请建议...
int a = 0, b = 20;
while(...)
{
increment();
if(a >= b) //Reached threshold
{
do_stuff();
b += 20;
}
}
你的问题不是很清楚,但可能是这样的?
(答案已编辑,因为我在a&b初始化中错了)
如果你可以随时使用一个函数来递增a
这很简单。
int foo(int* a, int b, int increment){
const int bar = *a / b;
*a += increment;
return bar - *a / b;
}
这不仅会告诉您是否,还会告诉您a
已经跨越了多少阈值。
const int bar = foo(&VariableA, VariableB, 13);
if(bar == 1){
printf("VariableA has touched %s threshold", (VariableA < VariableB * 2 ? "the current" : "a"));
}else if(bar > 1){
printf("VariableA has touched %d thresholds", bar);
}else{
printf("VariableA has not touched %s", (VariableA < VariableB * 2 ? "the threshold yet" : "the next threshold"));
}
当VariableA
再次低于第一个阈值时,这也将处理增量更新中的负数。它还可以正确处理负数,而基于%
的解决方案可能不会。
(伪代码,未测试)
int oldA, A, B, C;
oldA = A;
A += whatever;
C = A/B ; /* integer division on purpose */
if ( (oldA < C*B) && (A >= C*B) )
printf "hit a threshholdn";
- 检查值是否在集合p1和p2中,但不在p3中
- 传感器值的阈值
- 用于检查值是否为其任何参数的帮助程序函数
- 在 RAII 构造中修改 RVO 值是否安全?
- 我们可以将阈值应用于色彩空间模型的单个组件(如 RGB 和 LAB)吗?
- 错误:断言失败 (src.type() == CV_8UC1) 在阈值中
- 有没有办法检查发送到变量的值是否是正确的类型,而它已经在该变量下?
- 初始化值是否保证通过其自己的地址反映,而不考虑内存顺序
- 使用按位运算确定值是否包含另一个值
- 使用阈值进行加速度计振动检测
- 假定 Windows 伪句柄的值是否安全/定义?
- 构造函数对象赋值是否泄漏内存
- 检查迭代器是否具有我们要在C++中分配的值是否明智的优化
- OpenCV Otsu的阈值:计算多个Mat对象的单个阈值
- 范围末尾的左值是否可以被视为右值?
- 说编译器可以将下面的表达式"a->i"替换为其值 1 是否正确,因为...?
- 检查数字是否达到阈值
- 在c++中是否有一种数据结构可以在达到指定的大小阈值时自动退出
- 测试值是否在阈值范围内的最佳方法(性能方面)是什么
- 输入参数传递:是否存在有效的按值传递的大小阈值