F=(a,b=a)=>a?(b+~a)*F(--a,b-2)+F(a,b)*++b:+!b
Çevrimiçi deneyin!
EnF( n , ben )- F( n , ben )nF'( N , i ) = ( - 1 )nF( n , ben )FF'F'( n , i ) = ( i - n - 1 ) F'( n - 1 , i - 2 ) + ( i + 1 ) F'( n - 1 , i )
F=(a,b=a)=>a?-F(--a,b)*++b+F(a,b-=3)*(a-b):+!b
Çevrimiçi deneyin!
Henüz JavaScript yanıtı bulamamış olduğum için şaşırdım, deneyeceğim.
s e c h (x)
açıklama
Tn: = t a n sn( t )Sn: = s e c hn( t )
dnSdtn= ∑i = 0nF( n , i ) Tn - benSben + 1
dTdt= S2dSdt= - TS
ddt( TbirSb)= a Ta - 1( S2) ( Sb) + b Sb - 1( - TS) ( Tbir)= a Ta - 1Sb + 2- b Ta + 1Sb
b = i + 1a = n - ı
ddt( Tn - benSben + 1)= ( n - i ) Tn - ı - 1Sben + 3- ( i + 1 ) Tn - i + 1Sben + 1= ( n - i ) T( n + 1 ) - ( i + 2 )S( i + 2 ) + 1- ( i + 1 ) T( n + 1 ) - iSben + 1
F( n , ben )F( n + 1 , i + 2 )F( n + 1 , i )F( n , ben )F( n - 1 , i - 2 )F( n - 1 , i )
F( n , i ) = ( n - i + 1 ) F( n - 1 , i - 2 ) - ( i + 1 ) F( n - 1 , i )
F( 0 , 0 ) = 1F( 0 , i ) = 0i ≠ 0
Kodun ilgili kısmı a?-F(--a,b)*++b+F(a,b-=3)*(a-b):+!b
, yukarıdaki yineleme formülünü kullanarak tam olarak hesaplanıyor. İşte dağılım:
-F(--a,b) // -F(n-1, i) [ a = n-1, b = i ]
*++b // *(i+1) [ a = n-1, b = i+1 ]
+F(a,b-=3) // +F(n-1, i-2) [ a = n-1, b = i-2 ]
*(a-b) // *((n-1)-(i-2)) [ a = n-1, b = i-2 ]
// which is equivalent to *(n-i+1)
T( 0 ) = 0S( 0 ) = 1EnSn + 1dnSdtnF( n , n )
F( 0 , 0 )F( n , i ) = 0ben < 0benEn= 0nbenn0 ≤ i ≤ ni = n + 1n - i + 1 = n - ( n + 1 ) + 1 = 00 ≤ i ≤ nF( n , i ) = 0ben > n
Uzantıları
Kod, üç ilgili diziyi daha hesaplamak için değiştirilebilir:
Teğet Numaralar (46 bayt)
F=(a,b=a)=>a?F(--a,b)*++b+F(a,b-=3)*(a-b):+!~b
Secant Numaraları (45 bayt)
F=(a,b=a)=>a?F(--a,b)*++b+F(a,b-=3)*(a-b):+!b
Euler Zikzak Numaraları (48 bayt)
F=(a,b=a)=>a?F(--a,b)*++b+F(a,b-=3)*(a-b):!b+!~b
-i/2
elde edilen verimdir-i
. Bunui
toplamın dışına çarpın ve anlayın1
.