OFFSET
0,3
COMMENTS
Partitions are usually written with parts in descending order, but the conditions are easier to check visually if written in ascending order.
The differences of a sequence are defined as if the sequence were increasing, so for example the differences (with the first part taken to be 0) of (6,3,1) are (-3,-2,-1). Then a(n) is the number of integer partitions of n whose differences (with the last part taken to be 0) are weakly decreasing. The Heinz numbers of these partitions are given by A325364. Of course, the number of such integer partitions of n is also the number of reversed integer partitions of n whose differences (with the first part taken to be 0) are weakly decreasing, which is the author's interpretation. - Gus Wiseman, May 03 2019
LINKS
Fausto A. C. Cariboni, Table of n, a(n) for n = 0..2000 (terms 0..300 from Seiichi Manyama)
EXAMPLE
There are a(11) = 8 such partitions of 11:
01: [11]
02: [4, 7]
03: [5, 6]
04: [2, 4, 5]
05: [3, 4, 4]
06: [2, 3, 3, 3]
07: [1, 2, 2, 2, 2, 2]
08: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
There are a(12) = 11 such partitions of 12:
01: [12]
02: [4, 8]
03: [5, 7]
04: [6, 6]
05: [2, 4, 6]
06: [3, 4, 5]
07: [4, 4, 4]
08: [3, 3, 3, 3]
09: [1, 2, 3, 3, 3]
10: [2, 2, 2, 2, 2, 2]
11: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
MATHEMATICA
Table[Length[Select[IntegerPartitions[n], GreaterEqual@@Differences[Append[#, 0]]&]], {n, 0, 30}] (* Gus Wiseman, May 03 2019 *)
PROG
(Ruby)
def partition(n, min, max)
return [[]] if n == 0
[max, n].min.downto(min).flat_map{|i| partition(n - i, min, i).map{|rest| [i, *rest]}}
end
def f(n)
return 1 if n == 0
cnt = 0
partition(n, 1, n).each{|ary|
ary << 0
ary0 = (1..ary.size - 1).map{|i| ary[i - 1] - ary[i]}
cnt += 1 if ary0.sort == ary0
}
cnt
end
def A320509(n)
(0..n).map{|i| f(i)}
end
p A320509(50)
CROSSREFS
Cf. A320387 (distinct parts, nonincreasing, and first difference <= first part).
KEYWORD
nonn
AUTHOR
Seiichi Manyama, Oct 14 2018
STATUS
approved