CouplesAreForeverGrundyValue
The Grundy value of the game that splits a part above 2 into two parts: the nim-sum of the values of the parts, each the least value missing from the nim-sums over its splits.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St000752via IntegerPartition✓CouplesAreForeverGrundyValue(partition)The Grundy value of the game that splits a part above 2 into two parts: the nim-sum of the values of the parts, each the least value missing from the nim-sums over its splits.Typed signatures
| Type | Package | Applies |
|---|---|---|
(integer_partition) -> number | combinatorics | always |
Details
- Defined over
IntegerPartitionas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
IntegerPartitionand 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.
Definition
Epsil, as the implementation runs it.
on IntegerPartition, over _x
0 if Length(_x) < 1 else Apply(
(g: list<integer>) => Fold(
Function(a + b - 2 *
Sum(Map(Function(2 ^ k *
((a -
a %
2 ^ k) /
2 ^ k %
2) *
((b -
b %
2 ^ k) /
2 ^ k %
2), k), Range(0, Sum(_x)))), a, b),
0,
Map(
Function(
g[_x[i]],
i,
),
Range(
1,
Length(_x),
),
),
),
Fold(Function(Map(
Function((0 if b < 3 else Apply(
(s: list<integer>) => Min(Map(
Function(k if Sum(Map(Function(1 if m == k else 0, m), s)) ==
0 else b, k),
Range(0, b - 1),
)),
Map(Function(a[j] +
a[b - j] -
2 *
Sum(Map(Function(2 ^ k *
((a[j] -
a[j] %
2 ^ k) /
2 ^ k %
2) *
((a[b - j] -
a[b - j] %
2 ^ k) /
2 ^ k %
2), k), Range(0, Sum(_x)))), j), Range(1, b - 1)),
)) if i == b else a[i], i),
Range(1, Sum(_x)),
), a, b), Map(
Function(0, i),
Range(1, Sum(_x)),
), Range(1, Sum(_x))),
)Examples
Properties #
About
| Examples | 5 |
|---|---|
| Crosswalk | FindStat |