OFFSET
0,4
COMMENTS
Partitions into distinct parts (p(1), p(2), ..., p(m)) such that p(k-1) - p(k-2) < p(k) - p(k-1) for all k >= 3.
LINKS
Alois P. Heinz, Table of n, a(n) for n = 0..1000 (first 225 terms from Joerg Arndt)
EXAMPLE
There are a(17) = 21 such partitions of 17:
01: [ 1 2 4 10 ]
02: [ 1 2 5 9 ]
03: [ 1 2 14 ]
04: [ 1 3 13 ]
05: [ 1 4 12 ]
06: [ 1 5 11 ]
07: [ 1 16 ]
08: [ 2 3 12 ]
09: [ 2 4 11 ]
10: [ 2 5 10 ]
11: [ 2 15 ]
12: [ 3 4 10 ]
13: [ 3 5 9 ]
14: [ 3 14 ]
15: [ 4 5 8 ]
16: [ 4 13 ]
17: [ 5 12 ]
18: [ 6 11 ]
19: [ 7 10 ]
20: [ 8 9 ]
21: [ 17 ]
- Joerg Arndt, Mar 31 2014
PROG
(Sage)
def A179254(n):
has_increasing_diffs = lambda x: min(differences(x, 2)) >= 1
allowed = lambda x: len(x) < 3 or has_increasing_diffs(x)
return len([x for x in Partitions(n, max_slope=-1) if allowed(x[::-1])])
# D. S. McNeil, Jan 06 2011
(Ruby)
def partition(n, min, max)
return [[]] if n == 0
[max, n].min.downto(min).flat_map{|i| partition(n - i, min, i - 1).map{|rest| [i, *rest]}}
end
def f(n)
return 1 if n == 0
cnt = 0
partition(n, 1, n).each{|ary|
ary0 = (1..ary.size - 1).map{|i| ary[i - 1] - ary[i]}
cnt += 1 if ary0.sort == ary0.reverse && ary0.uniq == ary0
}
cnt
end
def A179254(n)
(0..n).map{|i| f(i)}
end
p A179254(50) # Seiichi Manyama, Oct 12 2018
CROSSREFS
KEYWORD
nonn
AUTHOR
Joerg Arndt, Jan 05 2011
STATUS
approved