Catalan numbers/Pascal's triangle: Difference between revisions

(GP)
Line 138:
</pre>
 
=={{header|J}}==
 
<lang j> Catalan=. }:@:(}.@:((<0 1)&|:) - }:@:(((<0 1) |: ])@:(2&|.)))@:(i. +/\@:]^:[ #&1)@:(2&+)</lang>
{{out|Example use}}
<lang j> Catalan 15
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845
</lang>
 
A structured derivation of Catalan follows:
 
<lang j> o=. @: NB. Composition of verbs (functions)
( PascalTriangle=. i. ((+/\@]^:[)) #&1 ) 5
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
( MiddleDiagonal=. (<0 1)&|: ) o PascalTriangle 5
1 2 6 20 70
( AdjacentLeft=. ((<0 1) |: ]) o (2&|.) ) o PascalTriangle 5
1 4 15 1 5
( Catalan=. }: o (}. o MiddleDiagonal - }: o AdjacentLeft) o PascalTriangle o (2&+) f. ) 5
1 2 5 14 42
Catalan
}:@:(}.@:((<0 1)&|:) - }:@:(((<0 1) |: ])@:(2&|.)))@:(i. +/\@]^:[ #&1)@:(2&+)</lang>
 
=={{header|Mathematica}}==
Anonymous user