2012-04-04 75 views
3

http://oeis.org/A005773简单的算法/方法来生成序列

我看着那个页面,但大多数的缩写没有任何意义。

G.f:2X /(3×-1 + SQRT(1-2倍-3X^2)) - 莱恩笑脸 (笑脸(AT)math.uaa.alaska.edu)。

G.f是否暗示生成函数?用x代替任何值几乎产生负数的平方根(虚数)。它是如何产生序列的? 任何帮助将受到欢迎。

编辑: 页面底部有一些使用Mathematica,Maple等专业语言的例子,这些我都不熟悉。任何使用C,Java或Python等语言的解释都会很有帮助。

+2

这不是一个真正的编程问题。但是,是的,g.f.代表产生功能;该表达式的泰勒级数的系数产生序列的项。您可以使用其他公式之一(例如重复之一)。 – DSM 2012-04-04 19:23:57

+0

感谢您的评论,帝斯曼。我确实认为这是数学和编程之间的一个地方。 – toddlermenot 2012-04-04 19:28:50

+0

偏题 - 属于数学.SE – 2012-04-05 02:02:08

回答

5

如果你有一个序列{a0, a1, a2, a3, ... }那么它的生成函数是

f(x) = sum aj x^j 

例如,序列{1, 1, 1, 1, ... }

f(x) = 1 + x + x^2 + x^3 + ... 

方便的是,该函数具有封闭的表达

f(x) = 1/(1 - x) 

,所以我们说1/(1 - x){1, 1, 1, 1, ... }生成函数。

对于您的功能2x/(3x - 1 + sqrt(1 - 2x - 3x^2))您需要在其泰勒序列中扩展此功能约x0 = 0,然后您将拥有序列的条款。

如果使用Wolfram Alpha,你会看到前几个条款是

1, 1, 2, 5, 13, 35, 96, 267, ... 

,然后如果你使用OEIS你会得到

A005773一个大小为导向的动物数(或在标准立场指导正规军团)。

这是回到你开始显示这个生成函数确实产生这个序列的地方。

有一本非常好玩的书,名为generatingfunctionology致力于这个主题,你可以免费下载。请享用!

+0

谢谢你的真棒回复! – toddlermenot 2012-04-04 19:43:27

1

是的,G.f.意味着生成功能。这个表达式在x = 0处的级数展开给出了x的幂级数,其系数是序列。

Wolfram Alpha's expansion

我输入了

Series[2x/(3x-1+Sqrt[1-2x-3x^2]), {x, 0, 10}] 
+0

谢谢。 Wolfram Alpha非常方便! – toddlermenot 2012-04-04 19:44:16