Skip to content

BraceletCount ​

The colorings of a polygon with these color multiplicities, up to rotation and reflection: the necklaces and the colorings fixed by the reflections, over twice the size.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001603via IntegerPartition✓
BraceletCount(partition)The colorings of a polygon with these color multiplicities, up to rotation and reflection: the necklaces and the colorings fixed by the reflections, over twice the size.
Typed signatures
TypePackageApplies
(integer_partition) -> numbercombinatoricsalways

Domain: Partition statistics

Details
  • Defined over IntegerPartition as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a IntegerPartition and nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer.
  • FindStat's St001603 (the dihedral group); its title says colourings of a polygon. It is only defined there for sizes of at least 3.

Definition

Epsil, as the implementation runs it.

on IntegerPartition, over _x

0 if Length(_x) < 1 else Apply(
                                (o: number) => (Apply(
                                                       (g: number) => Sum(Map(Function(Count(Filter(
                                                                                                     Range(1, d),
                                                                                                     Function(k * d /
                                                                                                              LCM(k, d) ==
                                                                                                              1, k),
                                                                                                   )) *
                                                                                       (1 if Sum(_x) / d ==
                                                                                             0 else Product(Range(1, Sum(_x) / d))) /
                                                                                       Product(Map(
                                                                                                    Function(1 if _x[i] / d ==
                                                                                                                  0 else Product(Range(1, _x[i] / d)), i),
                                                                                                    Range(1, Length(_x)),
                                                                                                  )) if g % d ==
                                                                                           0 else 0, d), Range(1, g))),
                                                       Fold(
                                                             Function(a * b /
                                                                      LCM(a, b), a, b),
                                                             _x[1],
                                                             Rest(_x),
                                                           ),
                                                     ) + (0 if o > 2 else Sum(_x) *
                                                                         ((1 if (Sum(_x) - o) /
                                                                                2 ==
                                                                                0 else Product(Range(1, (Sum(_x) - o) /
                                                                                                       2))) /
                                                                          Product(Map(
                                                                                       Function(1 if (_x[i] -
                                                                                                      _x[i] % 2) /
                                                                                                     2 ==
                                                                                                     0 else Product(Range(1, (_x[i] -
                                                                                                                             _x[i] % 2) /
                                                                                                                            2)), i),
                                                                                       Range(1, Length(_x)),
                                                                                     ))))) / (2 *
                                                                               Sum(_x)),
                                Count(Filter(
                                              Range(1, Length(_x)),
                                              Function(_x[i] % 2 == 1, i),
                                            )),
                              )

Examples

Basic #

the partition 4+2+14 + 2 + 1 of 77

live ↗
InBraceletCount(IntegerPartition⁡([4,2,1]))\mathrm{BraceletCount}({\operatorname{IntegerPartition}}([4, 2, 1]))Out99

the partition 3+3+13 + 3 + 1 of 77

live ↗
InBraceletCount(IntegerPartition⁡([3,3,1]))\mathrm{BraceletCount}({\operatorname{IntegerPartition}}([3, 3, 1]))Out1010
Properties #

FindStat's value for [3]

live ↗
InCombinatorialStat(IntegerPartition⁡([3]),BraceletCount)\mathrm{CombinatorialStat}({\operatorname{IntegerPartition}}([3]), \text{BraceletCount})Out11

Known value · FindStat St001603

FindStat's value for [4]

live ↗
InCombinatorialStat(IntegerPartition⁡([4]),BraceletCount)\mathrm{CombinatorialStat}({\operatorname{IntegerPartition}}([4]), \text{BraceletCount})Out11

Known value · FindStat St001603

FindStat's value for [5]

live ↗
InCombinatorialStat(IntegerPartition⁡([5]),BraceletCount)\mathrm{CombinatorialStat}({\operatorname{IntegerPartition}}([5]), \text{BraceletCount})Out11

Known value · FindStat St001603

About
Examples5
CrosswalkFindStat