gives the permanent of the square matrix m.

Details and Options

  • Permanent works with both numeric and symbolic matrices.
  • The permanent of an matrix m is given by , where the are the permutations of elements.


open allclose all

Basic Examples  (1)

Find the permanent of symbolic matrices:

Scope  (1)

Use exact arithmetic to compute the permanent:

Use machine arithmetic:

Use 40-digit precision arithmetic:

Applications  (3)

The permanent of a square matrix of all ones is the factorial of the dimension:

The permanent of a square matrix of all ones minus the identity matrix counts the number of derangements of the corresponding dimension:

Given n sets, each containing a subset of (1 n), the number of ways to choose a distinct element from each subset is equal to the permanent of the 01 matrix where the (i,j) position contains a 1 exactly when subset i contains j:

There are two ways to create sets with distinct elements from each subset:

Confirm the result by explicitly constructing these sets:

Properties & Relations  (4)

The permanent is given by :

The permanent is a polynomial of its entries. Degree 2 for a matrix:

Degree 3 for a matrix etc.:

The determinant Det has the same terms as the permanent, except for sign changes:

The permanent is the outer product of the matrix rows, with terms having the repeated column index removed:

Possible Issues  (1)

Computing the permanent becomes slow even at modest dimension:

Wolfram Research (2015), Permanent, Wolfram Language function,


Wolfram Research (2015), Permanent, Wolfram Language function,


@misc{reference.wolfram_2020_permanent, author="Wolfram Research", title="{Permanent}", year="2015", howpublished="\url{}", note=[Accessed: 19-January-2021 ]}


@online{reference.wolfram_2020_permanent, organization={Wolfram Research}, title={Permanent}, year={2015}, url={}, note=[Accessed: 19-January-2021 ]}


Wolfram Language. 2015. "Permanent." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2015). Permanent. Wolfram Language & System Documentation Center. Retrieved from