私は非常に具体的な何かを計算する必要がある特定のアプリケーションを持っています、そして私は論理に優れていますが、数学は常に私の弱点でした。
数値、たとえば-20が与えられた場合、100ベースの計算を適用する必要があります(つまり、ベースは0ではなく100です。まったく別のベース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
それが役立つ場合、問題はスポーツオッズに関連しています。理論的には、これはお金を指します(一方の側で$1.00を獲得するためのリスク$1.40、他方の側で$1.20を獲得するためのリスク$1.00、.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;
}
この式は機能しますが、条件付き+/-にはあまり満足していませんが、基本的にこれが私にとって機能する唯一の式です。
誰かがこれを改善する方法を提案できますか?できれば+/-の条件なしで?
編集:
私が質問をしたとき、私は一つの可能な答えが「あなたがそれをしている方法がおそらく最善である」であると知っていました、そしてそれはコンセンサスのようです。