gpt4 book ai didi

使用算法将未绑定(bind)值转换为绑定(bind)值?

转载 作者:行者123 更新时间:2023-12-02 08:53:59 25 4
gpt4 key购买 nike

我有一个设备驱动程序,它使用以下算法将从传感器接收的值(无限制范围)转换为不同的值(限制范围)。

传感器的值通常在 0-200 范围内,但也可以超过它,最大值约为 4000(只有当您以极端方式使用传感器时才会发生这种情况)。我基本上需要一个可以执行以下操作但没有巨大的 if 的函数,因此它更灵活。

它需要接受值、步长(在本例中为 20.0f)和最大输出(在本例中为 10)。

/* disregard the floating point numbers, I can cast them to int */
if (value <= 20.0f)
return 0;
else if (value <= 40.0f)
return 1;
else if (value <= 60.0f)
return 2;
else if (value <= 80.0f)
return 3;
else if (value <= 100.0f)
return 4;
else if (value <= 120.0f)
return 5;
else if (value <= 140.0f)
return 6;
else if (value <= 160.0f)
return 7;
else if (value <= 180.0f)
return 8;
else if (value <= 190.0f)
return 9;
else if (value >= 200.0f)
return 10;

return 0;

最佳答案

int step(double value, int step, int maximum) { 
return min(int(value / step), maximum);
}

编辑:正如 @DSM 指出的,这有一个栅栏错误,应该类似于:

int step(double value, int step, int maximum) { 
return min(int((value-1) / step), maximum);
}

关于使用算法将未绑定(bind)值转换为绑定(bind)值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348686/

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