Bu zorluğun amacı Euler yöntemini f (n) (x) = c biçimindeki diferansiyel denklemin çözümüne yaklaşmak için kullanmaktır . †
Girişi, tam sayılar listesi olacak N inci değer f değerini temsil eder (n) (0). İlk tamsayı f (0), ikincisi f '(0), vb. Bu listedeki son tam sayı sabittir ve her zaman aynı kalır.
Ayrıca girdi , hedef değeri temsil eden pozitif (sıfır olmayan) bir tamsayı x olarak sağlanır (f (x) değerini tahmin etmeye çalışıyorsunuz). Euler yöntemi için adım boyutu her zaman 1 olacaktır. Bu nedenle, toplam x adım atmanız gerekecektir .
Eğer Euler yöntemiyle unfamliar değilseniz, burada girişi için bir açıklama detaylı bir örnektir [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
Esasen, oluşturulan tablodaki her bir hücre, üstündeki hücrenin ve üstteki ve sağdaki hücrenin toplamıdır. Böylece, f (a) = f (a-1) + f '(a-1); f '(a) = f' (a-1) + f '' (a-1); ve f '' (a) = f '' (a-1) + f '' '(a-1). Son cevap f (8) ≈ -8'dir. ††
Giriş listesi her zaman 2 veya daha fazla eleman içerecektir, bunların hepsi mutlak değerleri 10'dan düşük olacaktır. X ≥ 1 de garanti edilmektedir. Çıktı tek bir tamsayıdır, f (x) 'nin yaklaşımıdır. Giriş her iki sırayla da alınabilir ( x'ten önceki liste veya listeden önce x ). x ayrıca istenirse listenin ilk veya son öğesi olabilir.
Test senaryoları:
[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
†: bu durumda bir yaklaştırma yöntemi kullanmanın aslında aptal olduğu dikkat çekicidir. ancak, bu meydan okuma amacıyla mümkün olan en basit işlev seçilmiştir.
† → : gerçek değer -25⅓ olur, bu da bu yaklaşımı "çok iyi değil" olarak nitelendirir.