脚本来计算序列的第n个元素

Dat*_*D96 1 python sequence

我正在尝试编写一些代码来计算序列的第n个元素。

a_i = 2 * a_i-1 + 1 for i > 0, where a_0 = 1.
Run Code Online (Sandbox Code Playgroud)

我了解该公式的工作原理以及如何在Python中实现该公式。

我只是迷失在如何找到第n个元素的公式。

自从我使用clac2已经有一段时间了。

我知道有一种找到公式的方法,因此,如果有人有任何提示,将不胜感激!

我会发布一些代码,但我知道这是错误的,并且不计算第n个元素。

截至目前,我只是对每个元素进行硬编码。因此,正如我所说,一旦我知道要查找第n个元素的公式,就可以编写代码。

NPE*_*NPE 5

首先,观察a_0 = 1 = 2**(0+1) - 1

现在,通过归纳:

a_i = 2 * a_(i-1) + 1 = 2*(2**((i-1)+1) - 1) + 1 = 2**(i+1) - 1

这为您提供了一种封闭形式的解决方案:

>>> def a(i):
...   return 2**(i+1) - 1
...
>>> [a(i) for i in range(10)]
[1, 3, 7, 15, 31, 63, 127, 255, 511, 1023]
Run Code Online (Sandbox Code Playgroud)