Hầu như mọi hàm có thể được biểu diễn dưới dạng đa thức với các số hạng vô hạn.
Ví dụ, e^x = 1 + x + x^2/2! + x^3/3! + x^4/4! + ...
Ví dụ, sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ...
Các hệ số của các n
điều khoản -th tạo thành một chuỗi và hàm tương ứng được gọi là Hàm tạo của chuỗi.
Các hệ số của các n
điều khoản -th tạo thành một chuỗi.
Thông thường, n
thuật ngữ -th sẽ có mẫu số là n!
. Do đó, chúng tôi nhân hệ số n!
với để có được một chuỗi khác, có Hàm tạo hàm mũ sẽ là hàm ban đầu.
Ví dụ, trình tự mà hàm mũ Tạo là e^x
sẽ 1,1,1,1,...
.
Ví dụ, trình tự mà hàm mũ Tạo là sin(x)
sẽ 0,1,0,-1,0,1,0,-1,...
.
Bài tập
Nhiệm vụ của bạn là để tìm ra n
hạn -thứ của dãy mà hàm mũ Tạo là tan(x)
.
Tủ thử
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
(Sao chép từ đây .) (Cảnh báo: 0
thuật ngữ -th khác nhau)
Ví dụ thực hiện
# 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)]))
Người giới thiệu
- Tạo chức năng trên Wikipedia
- Hàm tạo số mũ trên Wikipedia
- Ví dụ về hàm tạo hàm mũ trên Wikipedia
- Tạo chức năng trên MathWorld
- Hàm tạo số mũ trên MathWorld
- Loạt Taylor trên Wikipedia
- Đạo hàm của 9 điều khoản đầu tiên của chuỗi yêu cầu
- Bắt buộc OEIS A009006 (Lưu ý rằng
0
thuật ngữ -th khác nhau) - Thuật toán
- OEIS A000111: số tăng / giảm