問題は次のとおりです。数字が大きいか小さいか(どちらでもかまいません)で、この数字を微調整して計算する必要があります。計算の結果を考えると、少なくとも小数第 5 位で特定の値に一致する必要があります。
したがって、この開始値を取得し、正しい結果が得られるまで、現在の結果が何であるかを指定して増加または減少させるメソッドを作成する必要があります。私はいくつかの試みをしましたが、成功しませんでした。
これはまったく機能しない例ですが、私が何を意味するかを示唆しています...(これは単なる小規模なテストケースです)
public class Test {
public static void main(String[]args)
{
double ran = 100 + (int)(Math.random() * 100000.999999999);
int count = 0;
double tmpPay = 3666.545;
double top = tmpPay;
double low = 0;
while ( tmpPay != ran )
{
if ( tmpPay > ran)
{
if( low == 0)
{
tmpPay = top / 2;
top = tmpPay;
}
else
{
tmpPay = tmpPay + ((top - low) / 2);
top = tmpPay;
}
}
if (tmpPay < ran)
{
tmpPay = top * 1.5;
low = top;
top = tmpPay;
}
}
System.out.println(" VAlue of RAN: " +ran + "----VALUE OF tmpPay: " + tmpPay + "---------- COUNTER: " + count);
}
例 2 は、より明確な説明かもしれません。これが今の私の解決策です..
guessingValue = firstImput;
while (amortization > tmpPV)
{
guessingValue -= (decimal)1;
//guessingVlue -- > blackbox
amortization = blackboxResults;
}
while (amortization < tmpPV)
{
guessingValue += (decimal)0.00001;
//guessingVlue -- > blackbox
amortization = blackboxResults;
}
}