生成序列的简单算法/方法

时间:2012-04-04 19:17:05

标签: algorithm math

http://oeis.org/A005773

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

  

G.f。:2x /(3x-1 + sqrt(1-2x-3x ^ 2)) - Len Smiley   (笑脸(AT)math.uaa.alaska.edu)。

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

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

2 个答案:

答案 0 :(得分: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大小为n的定向动物的数量(或标准位置的定向n-ominoes)。

这是回到您开始显示此生成函数确实生成此序列的位置。

有一本名为generatingfunctionology的非常有趣的书专门介绍这个主题,你可以免费下载。享受!

答案 1 :(得分:1)

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

Wolfram Alpha's expansion

我的输入是

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