toqito.perms.perfect_matchings

toqito.perms.perfect_matchings(num: list[int] | int | np.ndarray) → np.ndarray[source]

Give all perfect matchings of num objects.

The input can be either an even natural number (the number of objects to be matched) or a numpy array containing an even number of distinct objects to be matched.

Returns all perfect matchings of a given list of objects. That is, it returns all ways of grouping an even number of objects into pairs.

This function is adapted from QETLAB.

Examples

This is an example of how to generate all perfect matchings of the numbers 1, 2, 3, 4.

>>> from toqito.perms import perfect_matchings
>>> perfect_matchings(4)
[[1 2 3 4]
 [1 3 2 4]
 [1 4 3 2]]
Parameters:num – Either an even integer, indicating that you would like all perfect matchings of the integers 1,2, … N, or a list or np.array containing an even number of distinct entries, indicating that you would like all perfect matchings of those entries.
Returns:An array containing all valid perfect matchings of size num.