比值变化编程实现小技巧

        某些常见的简单功能实现中,需要根据某两个变量的比值进行特定的逻辑操作。

        比如变量A和变量B,当两者相对变化在百分比阈值TH1时,做操作1;当两者变化达到TH1至TH2阈值时,做逻辑操作2;当大于百分比阈值TH2时,做逻辑操作3.

        假设B相对于A变化时,A被设定为参考物体,B的变化需要再坐标系A下观察。B相对于A可能增大或者减小,比如增大20%或者减小20%。假若A=100,则B可能增大到120或者减小到80,都表示B相对于A变化了20%。

     1.若是直接利用A/B的比值编程,复杂一点的伪代码实现为:

假设TH1<TH2,A>B。
min_th1 = (100-TH1)/100;
max_th1 = (100+TH1)/100;
min_th2= (100-TH2)/100;
max_th2 = (100+TH2)/100;

If(((A/B)<=max_th1 )&&((B/A)>=min_th1 ))
    Operate 1;
Else If((A/B)<=max_th2 )&&((A/B)>max_th1 ) ||  (B/A)<min_th1 )&&((B/A)>=min_th2 ))
    Operate 2;
Else if(((A/B)>max_th2 )||((B/A)<min_th2 ))
    Operate 3;

 2.若是利用abs(A-B)/A的比值编程,则伪代码表示为:

假设TH1<TH2,A>B。
min_th= TH1;
max_th = TH2;
ration = abs(A-B)*100/A;

If(ration <=min_th)
    Operate 1;
Else If((ration )<max_th )&&((ration )>min_th ))
    Operate 2;
Else if(((ration )>=max_th))
    Operate 3;

        方法2要简单明了些。直接比较B相对于A的变化百分比.假若A=100,B相对A增加或减少了20%(对应阈值TH1),B相对A增加或减少了50%(对应阈值TH2),那么直接用方法2更好理解,实现更简单些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值