帮助优化算法

Eri*_*sch 1 c# math formula

我有一个特殊的应用程序,需要计算一些非常具体的东西,虽然我擅长逻辑,但数学一直是我的弱点.

给定一个数字,比如-20,它需要应用100个基数的计算(即,基数为100,而不是0.不要与基数100混淆,这将是完全不同的东西).

换句话说,数学运算如下......,105,104,103,102,101,100,-101,-102,-103,-104,-105 ......

然后我需要根据这100个基数来做数学运算.

所以,例如:

-140 - 20 =  120
-120 - 20 =  100  
-115 - 20 = -105
-110 - 20 = -110
-105 - 20 = -115
 100 - 20 = -120  
 120 - 20 = -140
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,问题与体育赔率有关.从理论上讲,这指的是金钱(风险1.40美元,一方赢1.00美元,另一方风险1.00美元赢1.20美元,.20差价是赌场称之为"果汁"或他们来回转移的钱.)但是,该计划不涉及真钱,它更像是一个模拟器.

我目前的公式是这样的:

decimal CalculateSides(decimal side, decimal vig)
{
    decimal newSide = side - vig;

    newSide = -(newSide < 0) ? newSide + 100 : newSide - 100;

    return (newSide < 0) ? newSide + 100 : newSide - 100;
}
Run Code Online (Sandbox Code Playgroud)

虽然这个公式有效,但我对条件+/-不是很满意,但这基本上是唯一对我有用的公式.

有谁能建议一种方法来改善这个?最好没有+/-的条件?

编辑:

当我问这个问题时,我知道一个可能的答案是"这可能是你做的最好的方式",这似乎是共识.

sta*_*lue 6

处理这种情况的一种合理方法是在内部计算普通数字,从零到负数,并且只有加/减100才能显示.