我这里有一个方程, 带宽 = A x 200 kHz + B x 40 kHz,其中 0 <= A < 50 and B in [0, 1, 2, 3, 4] (and BW != 0)
我有2个问题,
如果我有 BW 值,是否可以找到满足上述方程的 A 和 B 值。或者更好地说,是否有可能找出 BW 的值是否满足这个方程?
如果这个值不满足,我需要找到最接近并且大于当前BW值的值。关于如何做到这一点有什么想法吗?
我对问题1的解决方案 -> 为了检查BW值是否满足,我正在考虑使用mod运算符。所以如果 (((BW % 200) % 40) == 0)。 BW的值满足条件
我对问题 2 的解决方案 -> 我知道我可以计算所有可能的值,然后选择一个,但我想知道是否可以通过数学方式找到该值以节省时间并提高效率
BW = 200 A + 40 B
你说B有五个可能的值:0,1,2,3,4
BW 是已知的
如果你得到 B 值之一(我们称之为“b”,b=0 或 b=1 或...),你可以求解 A:
A= (BW - 40 b) / 200
现在只需检查 'A' 是否在有效范围 [0, 50) 内。请注意使用一些小的舍入值(例如 0.0001):
if ( A>=0 && (50-A)>smallE ) //valid
对 B 的所有有效值重复此操作。
这样您就可以获得所有有效的 A、B 对。
如果没有解决方案,您可以这样处理:
For each value b=B
calculate BW1 for A= 0
calculate BW2 for A= 50-smallE
store b, A, BW1 and BW2
Sort the calculated list on BW
Select the lower BWi that is greater than the given BW