📜  Python| sympy.lucas() 方法(1)

📅  最后修改于: 2023-12-03 14:46:24.572000             🧑  作者: Mango

Python | sympy.lucas()

sympy.lucas(n, p) 方法用于计算 Lucas 数。 Lucas 数 $L_n(p)$ 是一个定义在自然数集合上、依赖于另一个正整数 $p$ 的序列。Lucas 数可以递归生成,通过从第 $0$ 项 $L_0 = 2$ 和 $L_1 = p$ 开始,用以下递推公式计算下一项:$L_{n} (p) = L_{n-1} (p) + L_{n-2} (p)$,其中 $n>1$ 。

语法
sympy.lucas(n, p)
参数
  • n: 一个整数,指定要计算的 Lucas 数的位置。
  • p: 一个整数,指定 Lucas 数列的下标为 1 项。
返回值

该方法返回 Lucas 数 $L_n(p)$ 的值。

实例
import sympy

# 计算 Lucas 数列的前 10 项,其中 p=1
for i in range(10):
    print(sympy.lucas(i, 1))
    
# 输出:
# 2
# 1
# 3
# 4
# 7
# 11
# 18
# 29
# 47
# 76
import sympy

# 计算 Lucas 数列的前 5 项,其中 p=3
for i in range(5):
    print(sympy.lucas(i, 3))

# 输出:
# 2
# 3
# 5
# 8
# 13
import sympy

# 计算 Lucas 数列的第 10 项,其中 p=8
print(sympy.lucas(10, 8))

# 输出:587
应用场景

Lucas 数列和 Fibonacci 数列有很多相似之处,在某些数学问题上可能会有一些应用。比如,在组合数学中,Lucas 数可以用来计算组合数 $\binom{n}{m}$,即从 $n$ 个元素中选 $m$ 个元素的方案数,公式为:$\binom{n}{m} = \binom{\lfloor\frac{n}{p}\rfloor}{\lfloor\frac{m}{p}\rfloor} \binom{n \ \text{mod} \ p}{m \ \text{mod} \ p}$,其中 $p$ 是一个质数。