scipy.linalg.

pascal#

scipy.linalg.pascal(n, kind='symmetric', exact=True)[源代码]#

返回 n x n 帕斯卡矩阵。

帕斯卡矩阵是一个以二项式系数作为元素的矩阵。

参数:
nint

要创建的矩阵的大小;也就是说,结果是一个 n x n 矩阵。

kindstr, 可选

必须是 ‘symmetric’、‘lower’ 或 ‘upper’ 中的一个。默认为 ‘symmetric’。

exactbool, 可选

如果 exact 为 True,则结果要么是 numpy.uint64 类型的数组(如果 n < 35),要么是 Python 长整数的对象数组。 如果 exact 为 False,则使用 scipy.special.comb 以及 exact=False 计算矩阵中的系数。 结果将是一个浮点数数组,数组中的值将不是精确的系数,但是此版本比 exact=True 快得多。

返回:
p(n, n) ndarray

帕斯卡矩阵。

另请参阅

invpascal

注释

有关帕斯卡矩阵的更多信息,请参阅 https://en.wikipedia.org/wiki/Pascal_matrix

在版本 0.11.0 中添加。

示例

>>> from scipy.linalg import pascal
>>> pascal(4)
array([[ 1,  1,  1,  1],
       [ 1,  2,  3,  4],
       [ 1,  3,  6, 10],
       [ 1,  4, 10, 20]], dtype=uint64)
>>> pascal(4, kind='lower')
array([[1, 0, 0, 0],
       [1, 1, 0, 0],
       [1, 2, 1, 0],
       [1, 3, 3, 1]], dtype=uint64)
>>> pascal(50)[-1, -1]
25477612258980856902730428600
>>> from scipy.special import comb
>>> comb(98, 49, exact=True)
25477612258980856902730428600