OFFSET
0,5
COMMENTS
A sequence is alternating if it is alternately strictly increasing and strictly decreasing, starting with either. For example, the partition (3,2,2,2,1) has no alternating permutations, even though it has the anti-run permutations (2,3,2,1,2) and (2,1,2,3,2).
From Joseph Likar, Aug 21 2023: (Start)
This sequence can be generated by the following pseudo code:
outputMap[2 to n] = n
for usedNumbers = 2 to n
for medianSize = ceil(usedNumbers / 2) + 1 to usedNumbers - 1
for medianValue = 1 to floor((n - usedNumbers + medianSize) / medianSize)
for numbersAboveMedian = 0 to usedNumbers - medianSize
calculateState(usedNumbers, medianSize, medianValue, numbersAboveMedian)
next numbersAboveMedian
next medianValue
next medianSize
if (usedNumbers mod 2 == 1)
for medianValue = 2 to Math.floor((n - usedNumbers + ceil(usedNumbers / 2))/ceil(usedNumbers / 2))
for numbersAboveMedian = 1 to usedNumbers - ceil(usedNumbers / 2) - 1
calculateState(usedNumbers, ceil(usedNumbers / 2), medianValue, numbersAboveMedian)
next numbersAboveMedian
next medianValue
endif
next usedNumbers
function calculateState(usedNumbers, medianSize, medianValue, numbersAboveMedian)
numbersBelowMedian = usedNumbers - medianSize - numbersAboveMedian)
bottomQTerms = gaussianBinomial(numbersBelowMedian + (medianValue - 1) - 1, numbersBelowMedian)
topQTerms = gaussianBinomial(n - 1 - 2 * numbersAboveMedian, numbersAboveMedian)
for bottomOffset = 0 to length(bottomQTerms) - 1
for topOffset = 0 to length(topQTerms) - 1
partitionSum = bottomOffset + topOffset + numbersBelowMedian + (medianSize * medianValue) + (numbersAboveMedian * (medianValue + 1));
if (partitionSum <= n)
outputMap[partitionSum] += bottomQTerms[bottomOffset] * topQTerms[topOffset]
next topOffset
next bottomOffset
end
where gaussianBinomial(m, n) takes the Gaussian Binomial (m choose n)_q and returns a zero-indexed array where each value in the array is the coefficient of q^index in the Gaussian binomial expansion. (End)
LINKS
EXAMPLE
The a(2) = 1 through a(9) = 11 partitions:
(11) (111) (22) (2111) (33) (2221) (44) (333)
(1111) (11111) (222) (4111) (2222) (3222)
(3111) (31111) (5111) (6111)
(21111) (211111) (41111) (22221)
(111111) (1111111) (221111) (51111)
(311111) (321111)
(2111111) (411111)
(11111111) (2211111)
(3111111)
(21111111)
(111111111)
MATHEMATICA
wigQ[y_]:=Or[Length[y]==0, Length[Split[y]]== Length[y]&&Length[Split[Sign[Differences[y]]]]==Length[y]-1];
Table[Length[Select[IntegerPartitions[n], Select[Permutations[#], wigQ]=={}&]], {n, 0, 15}]
CROSSREFS
The Heinz numbers of these partitions are A345171.
A000041 counts integer partitions.
A003242 counts anti-run compositions.
A005649 counts anti-run patterns.
A025047 counts alternating or wiggly compositions.
A344604 counts alternating compositions with twins.
KEYWORD
nonn
AUTHOR
Gus Wiseman, Jun 12 2021
EXTENSIONS
a(26) onwards by Joseph Likar, Aug 21 2023
STATUS
editing