Ribbon Shaped Tableaux#
- class sage.combinat.ribbon_shaped_tableau.RibbonShapedTableau(parent, t)[source]#
Bases:
SkewTableau
A ribbon shaped tableau.
For the purposes of this class, a ribbon shaped tableau is a skew tableau whose shape is a skew partition which:
has at least one cell in row \(1\);
has at least one cell in column \(1\);
has exactly one cell in each of \(q\) consecutive diagonals, for some nonnegative integer \(q\).
A ribbon is given by a list of the rows from top to bottom.
EXAMPLES:
sage: x = RibbonShapedTableau([[None, None, None, 2, 3], [None, 1, 4, 5], [3, 2]]); x [[None, None, None, 2, 3], [None, 1, 4, 5], [3, 2]] sage: x.pp() . . . 2 3 . 1 4 5 3 2 sage: x.shape() [5, 4, 2] / [3, 1]
>>> from sage.all import * >>> x = RibbonShapedTableau([[None, None, None, Integer(2), Integer(3)], [None, Integer(1), Integer(4), Integer(5)], [Integer(3), Integer(2)]]); x [[None, None, None, 2, 3], [None, 1, 4, 5], [3, 2]] >>> x.pp() . . . 2 3 . 1 4 5 3 2 >>> x.shape() [5, 4, 2] / [3, 1]
The entries labeled by
None
correspond to the inner partition. UsingNone
is optional; the entries will be shifted accordingly.sage: x = RibbonShapedTableau([[2,3],[1,4,5],[3,2]]); x.pp() . . . 2 3 . 1 4 5 3 2
>>> from sage.all import * >>> x = RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)],[Integer(3),Integer(2)]]); x.pp() . . . 2 3 . 1 4 5 3 2
- height()[source]#
Return the height of
self
.The height is given by the number of rows in the outer partition.
EXAMPLES:
sage: RibbonShapedTableau([[2,3],[1,4,5]]).height() 2
>>> from sage.all import * >>> RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)]]).height() 2
- spin()[source]#
Return the spin of
self
.EXAMPLES:
sage: RibbonShapedTableau([[2,3],[1,4,5]]).spin() 1/2
>>> from sage.all import * >>> RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)]]).spin() 1/2
- width()[source]#
Return the width of the ribbon.
This is given by the length of the longest row in the outer partition.
EXAMPLES:
sage: RibbonShapedTableau([[2,3],[1,4,5]]).width() 4 sage: RibbonShapedTableau([]).width() 0
>>> from sage.all import * >>> RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)]]).width() 4 >>> RibbonShapedTableau([]).width() 0
- class sage.combinat.ribbon_shaped_tableau.RibbonShapedTableaux(category=None)[source]#
Bases:
SkewTableaux
The set of all ribbon shaped tableaux.
- Element[source]#
alias of
RibbonShapedTableau
- from_shape_and_word(shape, word)[source]#
Return the ribbon corresponding to the given ribbon shape and word.
EXAMPLES:
sage: RibbonShapedTableaux().from_shape_and_word([1,3],[1,3,3,7]) [[None, None, 1], [3, 3, 7]]
>>> from sage.all import * >>> RibbonShapedTableaux().from_shape_and_word([Integer(1),Integer(3)],[Integer(1),Integer(3),Integer(3),Integer(7)]) [[None, None, 1], [3, 3, 7]]
- class sage.combinat.ribbon_shaped_tableau.Ribbon_class(parent, t)[source]#
Bases:
RibbonShapedTableau
This exists solely for unpickling
Ribbon_class
objects.
- class sage.combinat.ribbon_shaped_tableau.StandardRibbonShapedTableaux(category=None)[source]#
Bases:
StandardSkewTableaux
The set of all standard ribbon shaped tableaux.
INPUT:
shape
– (optional) the composition shape of the rows
- Element[source]#
alias of
RibbonShapedTableau
- from_permutation(p)[source]#
Return a standard ribbon of size
len(p)
from a permutationp
. The lengths of each row are given by the distance between the descents of the permutationp
.EXAMPLES:
sage: import sage.combinat.ribbon_shaped_tableau as rst sage: [StandardRibbonShapedTableaux().from_permutation(p) ....: for p in Permutations(3)] [[[1, 2, 3]], [[None, 2], [1, 3]], [[1, 3], [2]], [[None, 1], [2, 3]], [[1, 2], [3]], [[1], [2], [3]]]
>>> from sage.all import * >>> import sage.combinat.ribbon_shaped_tableau as rst >>> [StandardRibbonShapedTableaux().from_permutation(p) ... for p in Permutations(Integer(3))] [[[1, 2, 3]], [[None, 2], [1, 3]], [[1, 3], [2]], [[None, 1], [2, 3]], [[1, 2], [3]], [[1], [2], [3]]]
- from_shape_and_word(shape, word)[source]#
Return the ribbon corresponding to the given ribbon shape and word.
EXAMPLES:
sage: StandardRibbonShapedTableaux().from_shape_and_word([2,3],[1,2,3,4,5]) [[None, None, 1, 2], [3, 4, 5]]
>>> from sage.all import * >>> StandardRibbonShapedTableaux().from_shape_and_word([Integer(2),Integer(3)],[Integer(1),Integer(2),Integer(3),Integer(4),Integer(5)]) [[None, None, 1, 2], [3, 4, 5]]
- class sage.combinat.ribbon_shaped_tableau.StandardRibbonShapedTableaux_shape(shape)[source]#
Bases:
StandardRibbonShapedTableaux
Class of standard ribbon shaped tableaux of ribbon shape
shape
.EXAMPLES:
sage: StandardRibbonShapedTableaux([2,2]) Standard ribbon shaped tableaux of shape [2, 2] sage: StandardRibbonShapedTableaux([2,2]).first() [[None, 2, 4], [1, 3]] sage: StandardRibbonShapedTableaux([2,2]).last() [[None, 1, 2], [3, 4]] sage: # needs sage.graphs sage.modules sage: StandardRibbonShapedTableaux([2,2]).cardinality() 5 sage: StandardRibbonShapedTableaux([2,2]).list() [[[None, 1, 3], [2, 4]], [[None, 1, 2], [3, 4]], [[None, 2, 3], [1, 4]], [[None, 2, 4], [1, 3]], [[None, 1, 4], [2, 3]]] sage: StandardRibbonShapedTableaux([3,2,2]).cardinality() 155
>>> from sage.all import * >>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]) Standard ribbon shaped tableaux of shape [2, 2] >>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).first() [[None, 2, 4], [1, 3]] >>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).last() [[None, 1, 2], [3, 4]] >>> # needs sage.graphs sage.modules >>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).cardinality() 5 >>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).list() [[[None, 1, 3], [2, 4]], [[None, 1, 2], [3, 4]], [[None, 2, 3], [1, 4]], [[None, 2, 4], [1, 3]], [[None, 1, 4], [2, 3]]] >>> StandardRibbonShapedTableaux([Integer(3),Integer(2),Integer(2)]).cardinality() 155