Signed Compositions¶
- class sage.combinat.composition_signed.SignedCompositions(n)[source]¶
Bases:
Compositions_n
The class of signed compositions of \(n\).
EXAMPLES:
sage: SC3 = SignedCompositions(3); SC3 Signed compositions of 3 sage: SC3.cardinality() 18 sage: len(SC3.list()) 18 sage: SC3.first() [1, 1, 1] sage: SC3.last() [-3] sage: SC3.random_element() # random [1, -1, 1] sage: SC3.list() [[1, 1, 1], [1, 1, -1], [1, -1, 1], [1, -1, -1], [-1, 1, 1], [-1, 1, -1], [-1, -1, 1], [-1, -1, -1], [1, 2], [1, -2], [-1, 2], [-1, -2], [2, 1], [2, -1], [-2, 1], [-2, -1], [3], [-3]]
>>> from sage.all import * >>> SC3 = SignedCompositions(Integer(3)); SC3 Signed compositions of 3 >>> SC3.cardinality() 18 >>> len(SC3.list()) 18 >>> SC3.first() [1, 1, 1] >>> SC3.last() [-3] >>> SC3.random_element() # random [1, -1, 1] >>> SC3.list() [[1, 1, 1], [1, 1, -1], [1, -1, 1], [1, -1, -1], [-1, 1, 1], [-1, 1, -1], [-1, -1, 1], [-1, -1, -1], [1, 2], [1, -2], [-1, 2], [-1, -2], [2, 1], [2, -1], [-2, 1], [-2, -1], [3], [-3]]
- cardinality()[source]¶
Return the number of elements in
self
.The number of signed compositions of \(n\) is equal to
\[\sum_{i=1}^{n+1} \binom{n-1}{i-1} 2^i\]EXAMPLES:
sage: SC4 = SignedCompositions(4) sage: SC4.cardinality() == len(SC4.list()) True sage: SignedCompositions(3).cardinality() 18
>>> from sage.all import * >>> SC4 = SignedCompositions(Integer(4)) >>> SC4.cardinality() == len(SC4.list()) True >>> SignedCompositions(Integer(3)).cardinality() 18