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 - Nonecorrespond to the inner partition. Using- Noneis 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_classobjects.
- 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 permutation- p. The lengths of each row are given by the distance between the descents of the permutation- p.- 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