[go: up one dir, main page]

login
Number of distinct terms in rows 0 through n of Pascal's triangle.
6

%I #30 Feb 11 2024 17:33:28

%S 1,1,2,3,5,7,9,12,16,20,24,29,35,41,48,53,60,68,77,86,95,103,114,125,

%T 137,149,162,175,188,202,217,232,248,264,281,297,314,332,351,370,390,

%U 410,431,452,474,495,518,541,565,589,614,639,665,691,718,744,770,798

%N Number of distinct terms in rows 0 through n of Pascal's triangle.

%C An easy upper bound is 1 + floor(n^2/4) = A033638(n).

%C First differences are in A126257.

%H Nick Hobson, <a href="/A126256/b126256.txt">Table of n, a(n) for n = 0..1000</a>

%H Nick Hobson, <a href="/A126256/a126256.py.txt">Python program for this sequence</a>

%e There are 9 distinct terms in rows 0 through 6 of Pascal's triangle (1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1, 5, 10, 10, 5, 1, 1, 6, 15, 20, 15, 6, 1); hence a(6)=9.

%p seq(nops(`union`(seq({seq(binomial(n,k),k=0..n)},n=0..m))),m=0..57); # _Emeric Deutsch_, Aug 26 2007

%t Table[Length[Union[Flatten[Table[Binomial[n,k],{n,0,x},{k,0,n}]]]],{x,0,60}] (* _Harvey P. Dale_, Sep 10 2022 *)

%o (PARI) lim=57; z=listcreate(1+lim^2\4); for(n = 0, lim, for(r=1, n\2, s=Str(binomial(n, r)); f=setsearch(z, s, 1); if(f, listinsert(z, s, f))); print1(1+#z, ", "))

%o (Haskell)

%o -- import Data.List.Ordered (insertSet)

%o a126256 n = a126256_list !! n

%o a126256_list = f a007318_tabl [] where

%o f (xs:xss) zs = g xs zs where

%o g [] ys = length ys : f xss ys

%o g (x:xs) ys = g xs (insertSet x ys)

%o -- _Reinhard Zumkeller_, May 26 2015, Nov 09 2011

%o (Python)

%o def A126256(n):

%o s, c = (1,), {1}

%o for i in range(n):

%o s = (1,)+tuple(s[j]+s[j+1] for j in range(len(s)-1)) + (1,)

%o c.update(set(s))

%o return len(c) # _Chai Wah Wu_, Oct 17 2023

%Y Cf. A007318, A027424, A061786, A126254, A126255, A126257.

%Y Cf. A199425.

%Y Cf. A258318.

%K easy,nonn

%O 0,3

%A _Nick Hobson_, Dec 24 2006