Opened 10 years ago

Closed 10 years ago

# add functionality for counting, generating, and manipulating non-negative integer matrices

Reported by: Owned by: Franco Saliola Sage Combinat CC user major sage-5.3 combinatorics sd40, ncsf Chris Berg sage-5.3.beta0 Franco Saliola Chris Berg N/A

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


### comment:1 Changed 10 years ago by Franco Saliola

Summary: Counting, generating, and manipulating non-negative integer matrices → add functionality for counting, generating, and manipulating non-negative integer matrices

### comment:2 Changed 10 years ago by Franco Saliola

Status: new → needs_review