문제

Taylor 시리즈의 인식 된 형태를 사용하여 e ^ X를 재귀 적으로 계산해야합니다.

방정식 : e ^ x= 1 + x + (x ^ 2) / 2! + ... + ((x ^ n) / n!))

Factored 형식 : E ^ X= 1 + x (1 + x / 2 * (1 + x / 3 * (... (1 + x / n)))))

아래의 함수 정의에서 'x'는 전원이고 'n'은 e ^ x를 추정하는 총 용어의 총 수입니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 나는 더 좋아할 것입니다. Factioned Equation의 가장 안쪽의 용어의 기본 케이스를 사용하는 것을 포함하여 여러 가지 방법을 시도했지만 아무 소용도 없었습니다.

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이 바이어스 인 경우 매번 하나씩 증가해야하며 최종 반복에서 총 반복 수와 동일합니다.

도움이 되었습니까?

해결책

메소드가 정적이기 때문에 실제로 첫 번째 호출의 정적 변수에 저장할 수 있습니다.IF 문을 던져서 첫 번째 반복인지 확인해야합니다.나중에 코드를 추가하지만 지금은 시간이 없으므로

또는 변수의 반복 수를 추적 할 수 있습니다."실제"재귀 메서드 인 다른 방법으로 위임하고 다른 인수를 전달합니다.

모든 종류의 가능한 해결책.

루프로 바꿀 수 있지만, 그것은 당신의 감독자를 감동시키지 못할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top