-
-
Notifications
You must be signed in to change notification settings - Fork 702
Closed
Description
Counting, generating, and manipulating non-negative integer matrices with
prescribed row sums and column sums.
An *integer matrix* `m` with column sums `c := (c_1,...,c_k)` and row
sums `l := (l_1,...,l_n)` where `c_1+...+c_k` is equal to `l_1+...+l_n`,
is a `n \times k` matrix `m = (m_{i,j})` such that
`m_{1,j}+\dots+m_{n,j} = c_j`, for all `j` and
`m_{i,1}+\dots+m_{i,k} = l_i`, for all `i`.
EXAMPLES:
There are `6` integer matrices with row sums `[3,2,2]` and column sums
`[2,5]`::
sage: from sage.combinat.integer_matrices import IntegerMatrices
sage: IM = IntegerMatrices([3,2,2], [2,5]); IM
Non-negative integer matrices with row sums [3, 2, 2] and column sums [2, 5]
sage: IM.list()
[
[2 1] [1 2] [1 2] [0 3] [0 3] [0 3]
[0 2] [1 1] [0 2] [2 0] [1 1] [0 2]
[0 2], [0 2], [1 1], [0 2], [1 1], [2 0]
]
sage: IM.cardinality()
6
CC: @sagetrac-chrisjamesberg
Component: combinatorics
Keywords: sd40, ncsf
Author: Franco Saliola
Reviewer: Chris Berg
Merged: sage-5.3.beta0
Issue created by migration from https://trac.sagemath.org/ticket/13238