したがって、テイラー級数の因数分解された形式を使用して e^x を再帰的に計算する必要があります。
式: e^x = 1 +x + (x^2)/2! + ... + ((x^n)/n!))
因数分解された形式: e^x = 1 + x (1+x/2*(1+x/3*(...(1+x/n))))
以下の関数定義で、「x」は累乗、「n」は e^x を推定する項の総数です。誰かが私を正しい方向に向けることができれば幸いです。因数分解された方程式の最も内側の項の基本ケースを使用するなど、さまざまな方法を試しましたが、役に立ちませんでした。
static double eThree(double x, long n) {
//this is what i tried
if(n==0){
return 1 +x/n;
}else{
double a= (1+(x/n)) * (eThree(x,n-1));
System.out.println(a);
return a;
}
}
私が試みたように、「n」は減少するのではなく増加する必要があることに気付きましたが、関数への元の呼び出しには変数「n」の反復の総数が含まれており、全体の反復の総数を追跡する方法はありませんすべての再帰呼び出し。
(1 +(x/n)) の各項の除数の値 (n は除数) は、毎回 1 ずつ増加し、最後の反復では反復の合計数に等しくなります。