Skip to main content
`Ctrl`+`K`
scipy.linalg.

# pascal

scipy.linalg.pascal(n, kind='symmetric', exact=True)

  Returns the n x n Pascal matrix.

  The Pascal matrix is a matrix containing the binomial coefficients as its elements.

  Parameters:
    n int

      The size of the matrix to create; that is, the result is an n x n matrix.

    kind str, optional

      Must be one of ‘symmetric’, ‘lower’, or ‘upper’. Default is ‘symmetric’.

    exact bool, optional

      If exact is True, the result is either an array of type numpy.uint64 (if n < 35) or an object array of Python long integers. If exact is False, the coefficients in the matrix are computed using `scipy.special.comb` with `exact=False`. The result will be a floating point array, and the values in the array will not be the exact coefficients, but this version is much faster than `exact=True`.

  Returns:
    p(n, n) ndarray

      The Pascal matrix.

  See also

  `invpascal`

  Notes

  See https://en.wikipedia.org/wiki/Pascal_matrix for more information about Pascal matrices.

  Added in version 0.11.0.

  Examples

      >>> 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