이 과제의 목표는 오일러 방법 을 사용 하여 f (n) (x) = c 형식의 미분 방정식의 해를 근사화하는 것입니다 . †
입력은 n 번째 값이 f (n) (0) 의 값을 나타내는 정수 목록입니다 . 첫 번째 정수는 f (0)이고 두 번째 정수는 f '(0)입니다. 이 목록의 마지막 정수는 상수이며 항상 동일하게 유지됩니다.
또한 입력으로 제공되는 양의 (0이 아닌) 정수 x 는 목표 값을 나타냅니다 (f (x)를 추정하려고합니다). 오일러 방법의 단계 크기는 항상 1입니다. 따라서 총 x 단계를 수행 해야합니다 .
당신은 오일러의 방법 unfamliar 경우, 여기에 입력에 대한 설명과 상세한 예제 [4, -5, 3, -1], X = 8.
x f(x) f'(x) f''(x) f'''(x)
0 4 -5 3 -1
1 4-5 = -1 -5+3 = -2 3-1 = 2 -1
2 -1-2 = -3 -2+2 = 0 2-1 = 1 -1
3 -3+0 = -3 0+1 = 1 1-1 = 0 -1
4 -3+1 = -2 1+0 = 1 0-1 = -1 -1
5 -2+1 = -1 1-1 = 0 -1-1 = -2 -1
6 -1+0 = -1 0-2 = -2 -2-1 = -3 -1
7 -1-2 = -3 -2-3 = -5 -3-1 = -4 -1
8 -3-5 = -8
기본적으로 생성 된 테이블의 각 셀은 위의 셀과 위와 오른쪽의 셀의 합입니다. 따라서 f (a) = f (a-1) + f '(a-1); f '(a) = f'(a-1) + f ''(a-1); 및 f ''(a) = f ''(a-1) + f '' '(a-1). 최종 답변은 f (8) ≈ -8입니다. ††
입력 목록은 항상 2 개 이상의 요소를 포함하며, 모두 10보다 작은 절대 값을 갖습니다. x ≥ 1도 보장됩니다. 출력은 f (x)의 근사값 인 단일 정수입니다. 입력은 어느 순서 (전과리스트에 취해질 수 X 또는 X 리스트 전). 원하는 경우 x 는 목록의 첫 번째 또는 마지막 요소 일 수도 있습니다.
테스트 사례 :
[4, -5, 3, -1], x = 8 => -8
[1, 2, 3, 4, 5, 6], x = 10 => 3198
[1, 3, 3, 7], x = 20 => 8611
[-3, 3, -3, 3, -3, 3, -3, 3, -3], x = 15 => -9009
[1, 1], x = 1 => 2
† :이 상황에서 근사법을 사용하는 것은 실제로 어리석은 일입니다. 그러나이 도전의 목적을 위해 가장 간단한 기능이 선택되었습니다.
†† : 실제 값은 -25⅓이며이 근사값을 "매우 좋지 않음"으로 간주합니다.