📅  最后修改于: 2023-12-03 15:11:50.163000             🧑  作者: Mango
莱布尼兹谐波三角 (Leibniz harmonic triangle) 是由德国数学家莱布尼兹在 17 世纪提出的一种三角形数列序列,它是类似于帕斯卡三角形的三角形数列。
莱布尼兹谐波三角的第 $n$ 行第 $m$ 个数 (行列下标从 0 开始) 定义为:
$$ L_{n,m} = (-1)^m \binom{n}{m} \sum_{k=0}^n \frac{(-1)^k}{2k + 1} $$
其中,$\binom{n}{m}$ 表示组合数,$\frac{1}{2k+1}$ 是调和级数的一项,即 $1 + \frac{1}{3} + \frac{1}{5} + \dots$ 的第 $k$ 项。
下面是莱布尼兹谐波三角的前几行:
1
1 -1
1 -1 1
1 -1 5/4 -1
1 -1 5/4 -7/9 1
1 -1 5/4 -7/9 47/36 -1
1 -1 5/4 -7/9 47/36 -29/45 1
1 -1 5/4 -7/9 47/36 -29/45 323/180 -1
1 -1 5/4 -7/9 47/36 -29/45 323/180 -761/567 1
可以看出,莱布尼兹谐波三角的每一行都是一个逐项交替取反的调和级数的和。
莱布尼兹谐波三角在数学和计算机领域都有一些应用,例如:
下面是一个使用 Python 编写的计算莱布尼兹谐波三角的函数:
from typing import List
def leibniz_harmonic_triangle(n: int) -> List[List[float]]:
triangle = [[0] * (i + 1) for i in range(n)]
for i in range(n):
for j in range(i + 1):
sign = (-1)**j
binom = math.comb(i, j)
harm = sum([(-1)**k / (2 * k + 1) for k in range(i + 1)])
triangle[i][j] = sign * binom * harm
return triangle
其中 math.comb
是 Python 3.8 新增的 math
模块中用于计算组合数的函数。