login
Number of addition triangles whose sum is n (version 1).
2

%I #31 Sep 22 2020 03:54:25

%S 1,1,1,2,1,3,1,4,1,5,2,6,1,9,1,9,4,9,3,14,2,14,6,14,5,21,4,19,10,21,8,

%T 27,6,29,16,25,12,38,14,33,19,37,22,46,14,47,33,45,22,59,29,59,35,56,

%U 40,74,34,68,53,72,47,90,47,88,63,88,64,105,59,108,84,106,75,130,81,125,99,128,103,147

%N Number of addition triangles whose sum is n (version 1).

%C An addition triangle has any set of positive numbers as base; other rows are formed by adding pairs of adjacent numbers.

%C Reversing the base counts as a different triangle.

%H Seiichi Manyama, <a href="/A337785/b337785.txt">Table of n, a(n) for n = 1..500</a>

%e n |

%e -----+------------------------------------------------

%e 1 | 1

%e -----+------------------------------------------------

%e 2 | 2

%e -----+------------------------------------------------

%e 3 | 3

%e -----+------------------------------------------------

%e 4 | 2

%e | 4 1,1

%e -----+------------------------------------------------

%e 5 | 5

%e -----+------------------------------------------------

%e 6 | 3 3

%e | 6 1,2 2,1

%e -----+------------------------------------------------

%e 7 | 7

%e -----+------------------------------------------------

%e 8 | 4 4 4

%e | 8 1,3 2,2 3,1

%e -----+------------------------------------------------

%e 9 | 9

%e -----+------------------------------------------------

%e 10 | 5 5 5 5

%e | 10 1,4 2,3 3,2 4,1

%e -----+------------------------------------------------

%e 11 | 4

%e | 2,2

%e | 11 1,1,1

%e -----+------------------------------------------------

%e 12 | 6 6 6 6 6

%e | 12 1,5 2,4 3,3 4,2 5,1

%e -----+------------------------------------------------

%e 13 | 13

%e -----+------------------------------------------------

%e 14 | 5 5

%e | 7 7 7 7 7 7 2,3 3,2

%e | 14 1,6 2,5 3,4 4,3 5,2 6,1 1,1,2 2,1,1

%o (Ruby)

%o def f(n)

%o ary = [1]

%o (n - 1).times{|i|

%o ary = [0] + ary + [0]

%o ary = (0..i + 1).map{|j| ary[j] + ary[j + 1] + 1}

%o }

%o ary

%o end

%o def A(n)

%o f_ary = (1..n / 2).map{|i| [i]}

%o cnt = 1

%o s = 1

%o while f_ary.size > 0

%o s_ary = f(s + 1)

%o b_ary = []

%o f_ary.each{|i|

%o (1..i[0] - 1).each{|j|

%o a = [j]

%o (0..s - 1).each{|k|

%o num = i[k] - a[k]

%o if num > 0

%o a << num

%o else

%o break

%o end

%o }

%o if a.size == s + 1

%o sum = (0..s).inject(0){|t, m| t + s_ary[m] * a[m]}

%o if sum < n

%o b_ary << a

%o elsif sum == n

%o cnt += 1

%o end

%o end

%o }

%o }

%o f_ary = b_ary

%o s += 1

%o end

%o cnt

%o end

%o def A337785(n)

%o (1..n).map{|i| A(i)}

%o end

%o p A337785(50)

%Y Cf. A014430, A062684, A062896, A337765, A337766, see A337787 for version 2.

%K nonn,look

%O 1,4

%A _Seiichi Manyama_, Sep 21 2020