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

Fausto A. C. Cariboni, Table of n, a(n) for n = 0..1000 (terms 0..100 from Seiichi Manyama)

EXAMPLE

There are a(17) = 16 such partitions of 17:

01: [17]

02: [1, 16]

03: [2, 15]

04: [3, 14]

05: [4, 13]

06: [5, 12]

07: [6, 11]

08: [7, 10]

09: [1, 6, 10]

10: [8, 9]

11: [1, 7, 9]

12: [2, 6, 9]

13: [2, 7, 8]

14: [3, 6, 8]

15: [4, 6, 7]

16: [2, 4, 5, 6]

There are a(18) = 20 such partitions of 18:

01: [18]

02: [1, 17]

03: [2, 16]

04: [3, 15]

05: [4, 14]

06: [5, 13]

07: [6, 12]

08: [7, 11]

09: [1, 6, 11]

10: [8, 10]

11: [1, 7, 10]

12: [2, 6, 10]

13: [1, 8, 9]

14: [2, 7, 9]

15: [3, 6, 9]

16: [3, 7, 8]

17: [4, 6, 8]

18: [5, 6, 7]

19: [1, 4, 6, 7]

20: [3, 4, 5, 6]

PROG

(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

}

cnt

end

def A320382(n)

(0..n).map{|i| f(i)}

end

p A320382(50)

CROSSREFS

KEYWORD

nonn

AUTHOR

Seiichi Manyama, Oct 12 2018

STATUS

approved