Casi todas las funciones se pueden expresar como un polinomio con términos infinitos.
Por ejemplo, e^x = 1 + x + x^2/2! + x^3/3! + x^4/4! + ...
Por ejemplo, sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ...
Los coeficientes de los ntérminos enésimos forman una secuencia, y la función correspondiente se llama Función generadora de la secuencia.
Los coeficientes de los ntérminos -th forman una secuencia.
A menudo, el nenésimo término tendría un denominador de n!. Por lo tanto, multiplicamos el coeficiente por n!para obtener otra secuencia, cuya función de generación exponencial sería la función original.
Por ejemplo, la secuencia cuya función exponencial Generación es e^xseria 1,1,1,1,....
Por ejemplo, la secuencia cuya función exponencial Generación es sin(x)seria 0,1,0,-1,0,1,0,-1,....
Tarea
Su tarea es encontrar el nenésimo término de la secuencia cuya función de generación exponencial es tan(x).
Casos de prueba
n result
0 0
1 1
2 0
3 2
4 0
5 16
6 0
7 272
8 0
9 7936
10 0
11 353792
12 0
13 22368256
14 0
15 1903757312
16 0
17 209865342976
18 0
19 29088885112832
20 0
21 4951498053124096
22 0
23 1015423886506852352
24 0
25 246921480190207983616
26 0
(Copiado de aquí .) (Advertencia: el 0enésimo término es diferente)
Implementación de ejemplo
# copied from https://github.com/Mego/Seriously/blob/v2.0/SeriouslyCommands.py#L16
def memoized(f):
memo = {}
def m_fun(*args):
if args in memo:
return memo[args]
else:
res = f(*args)
memo[args] = res
return res
return m_fun
# copied from https://github.com/Mego/Seriously/blob/v2.0/SeriouslyCommands.py#L169
@memoized
def binomial(n,r):
if r > n:
return 0
elif r==n:
return 1
res = 1
i = 1
while i<=r:
res *= (n+1-i)
res /= i
i+=1
return int(res)
# 2*u(n+1) = Sum_{k=0..n} binomial(n, k)*u(k)*u(n-k)
# from A000111
@memoized
def u(n):
if n<0: return 0
if n==0: return 1
if n==1: return 1
return sum([binomial(n-1,k)*u(k)*u(n-1-k) for k in range(n)])//2
def t(n):
if n%2 == 0: return 0
return u(n)
print('\n'.join([str(x) + ' ' + str(t(x)) for x in range(26)]))
Referencias
- Función generadora en Wikipedia
- Función generadora exponencial en Wikipedia
- Ejemplo de función de generación exponencial en Wikipedia
- Generando función en MathWorld
- Función de generación exponencial en MathWorld
- Serie de Taylor en Wikipedia
- Derivación de los primeros 9 términos de secuencia requerida
- Obligatorio OEIS A009006 (Tenga en cuenta que el
0enésimo término es diferente) - Algoritmo
- OEIS A000111: números arriba / abajo




