Celem tego wyzwania jest zastosowanie metody Eulera do przybliżenia rozwiązania równania różniczkowego postaci f (n) (x) = c. †
Dane wejściowe będą listą liczb całkowitych, w których n- ta wartość reprezentuje wartość f (n) (0). Pierwsza liczba całkowita to f (0), druga to f '(0) i tak dalej. Ostatnia liczba całkowita na tej liście jest stała i zawsze pozostanie taka sama.
Jako dane wejściowe zostanie również podana dodatnia (niezerowa) liczba całkowita x , która reprezentuje wartość docelową (próbujesz oszacować f (x)). Rozmiar kroku dla metody Eulera będzie zawsze wynosił 1. W związku z tym konieczne będzie wykonanie sumy x kroków.
Jeśli nie jesteś zaznajomiony z metodą Eulera, oto szczegółowy przykład z objaśnieniem wprowadzonych danych [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
Zasadniczo każda komórka w wygenerowanej tabeli jest sumą komórki nad nią i komórki nad i po prawej stronie. Zatem f (a) = f (a-1) + f '(a-1); f '(a) = f' (a-1) + f '' (a-1); oraz f '' (a) = f '' (a-1) + f '' (a-1). Ostateczna odpowiedź to f (8) ≈ -8. ††
Lista wejściowa zawsze będzie zawierać 2 lub więcej elementów, z których wszystkie będą miały wartości bezwzględne mniejsze niż 10. x ≥ 1 jest również zagwarantowane. Dane wyjściowe to jedna liczba całkowita, przybliżenie f (x). Dane wejściowe można przyjmować w dowolnej kolejności (lista przed x lub x przed listą). W razie potrzeby x może być pierwszym lub ostatnim elementem listy.
Przypadki testowe:
[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
†: warto zauważyć, że zastosowanie metody przybliżenia w tej sytuacji jest w rzeczywistości głupie. jednak dla celów tego wyzwania wybrano najprostszą możliwą funkcję.
††: rzeczywista wartość wynosi -25⅓, co kwalifikowałoby to przybliżenie jako „niezbyt dobre”.