Catalan numbers/Pascal's triangle: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
|||
Line 255: | Line 255: | ||
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 |
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 |
||
</pre> |
</pre> |
||
=={{header|AWK}}== |
=={{header|AWK}}== |
||
<lang AWK> |
<lang AWK> |
||
Line 371: | Line 372: | ||
<pre> |
<pre> |
||
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 |
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 |
||
</pre> |
|||
=={{header|C Sharp}}== |
|||
{{trans|C++}} |
|||
<lang csharp> |
|||
int n = 15; |
|||
List<int> t = new List<int>() { 0, 1 }; |
|||
for (int i = 1; i <= n; i++) |
|||
{ |
|||
for (var j = i; j > 1; j--) t[j] += t[j - 1]; |
|||
t.Add(t[i]); |
|||
for (var j = i + 1; j > 1; j--) t[j] += t[j - 1]; |
|||
Console.Write(((i == 1) ? "" : ", ") + (t[i + 1] - t[i])); |
|||
} |
|||
</lang> |
|||
{{out|Produces}} |
|||
<pre> |
|||
1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845 |
|||
</pre> |
</pre> |
||
Line 394: | Line 413: | ||
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 |
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 |
||
</pre> |
</pre> |
||
=={{header|C Sharp}}== |
|||
{{trans|C++}} |
|||
<lang csharp> |
|||
int n = 15; |
|||
List<int> t = new List<int>() { 0, 1 }; |
|||
for (int i = 1; i <= n; i++) |
|||
{ |
|||
for (var j = i; j > 1; j--) t[j] += t[j - 1]; |
|||
t.Add(t[i]); |
|||
for (var j = i + 1; j > 1; j--) t[j] += t[j - 1]; |
|||
Console.Write(((i == 1) ? "" : ", ") + (t[i + 1] - t[i])); |
|||
} |
|||
</lang> |
|||
{{out|Produces}} |
|||
<pre> |
|||
1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845 |
|||
</pre> |
|||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |
||
Line 444: | Line 444: | ||
2674440 |
2674440 |
||
9694845</pre> |
9694845</pre> |
||
=={{header|D}}== |
=={{header|D}}== |
||
Line 514: | Line 513: | ||
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845] |
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845] |
||
</pre> |
</pre> |
||
=={{header|Erlang}}== |
=={{header|Erlang}}== |
||
<lang erlang> |
<lang erlang> |
||
Line 534: | Line 534: | ||
Ans=catl(1,2). |
Ans=catl(1,2). |
||
</lang> |
</lang> |
||
=={{header|ERRE}}== |
=={{header|ERRE}}== |
||
<lang ERRE> |
<lang ERRE> |
||
Line 1,112: | Line 1,113: | ||
{{out}} |
{{out}} |
||
<pre>1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440</pre> |
<pre>1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440</pre> |
||
=={{header|M2000 Interpreter}}== |
=={{header|M2000 Interpreter}}== |
||
{{trans|FreeBasic}} |
{{trans|FreeBasic}} |
||
Line 1,175: | Line 1,177: | ||
15: 9694845 |
15: 9694845 |
||
</pre> |
</pre> |
||
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
||
Line 1,350: | Line 1,351: | ||
The <tt>Math::Pari</tt> module also has a binomial, but isn't as fast and overflows its stack after 3400. |
The <tt>Math::Pari</tt> module also has a binomial, but isn't as fast and overflows its stack after 3400. |
||
=={{header|Perl 6}}== |
|||
{{works with|Rakudo|2015.12}} |
|||
<lang perl6>constant @pascal = [1], -> @p { [0, |@p Z+ |@p, 0] } ... *; |
|||
constant @catalan = gather for 2, 4 ... * -> $ix { |
|||
my @row := @pascal[$ix]; |
|||
my $mid = +@row div 2; |
|||
take [-] @row[$mid, $mid+1] |
|||
} |
|||
.say for @catalan[^20];</lang> |
|||
{{out}} |
|||
<pre>1 |
|||
2 |
|||
5 |
|||
14 |
|||
42 |
|||
132 |
|||
429 |
|||
1430 |
|||
4862 |
|||
16796 |
|||
58786 |
|||
208012 |
|||
742900 |
|||
2674440 |
|||
9694845 |
|||
35357670 |
|||
129644790 |
|||
477638700 |
|||
1767263190 |
|||
6564120420</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
Line 1,707: | Line 1,675: | ||
;; 2674440 9694845) |
;; 2674440 9694845) |
||
</lang> |
</lang> |
||
=={{header|Raku}}== |
|||
(formerly Perl 6) |
|||
{{works with|Rakudo|2015.12}} |
|||
<lang perl6>constant @pascal = [1], -> @p { [0, |@p Z+ |@p, 0] } ... *; |
|||
constant @catalan = gather for 2, 4 ... * -> $ix { |
|||
my @row := @pascal[$ix]; |
|||
my $mid = +@row div 2; |
|||
take [-] @row[$mid, $mid+1] |
|||
} |
|||
.say for @catalan[^20];</lang> |
|||
{{out}} |
|||
<pre>1 |
|||
2 |
|||
5 |
|||
14 |
|||
42 |
|||
132 |
|||
429 |
|||
1430 |
|||
4862 |
|||
16796 |
|||
58786 |
|||
208012 |
|||
742900 |
|||
2674440 |
|||
9694845 |
|||
35357670 |
|||
129644790 |
|||
477638700 |
|||
1767263190 |
|||
6564120420</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
Line 1,884: | Line 1,886: | ||
(1 to 15).map(catalan(_))</lang> |
(1 to 15).map(catalan(_))</lang> |
||
{{Out}}See it in running in your browser by [https://scastie.scala-lang.org/2ybpRZxCTOyrx3mIy8yIDw Scastie (JVM)]. |
{{Out}}See it in running in your browser by [https://scastie.scala-lang.org/2ybpRZxCTOyrx3mIy8yIDw Scastie (JVM)]. |
||
=={{header|Scilab}}== |
=={{header|Scilab}}== |
||
<lang>n=15 |
<lang>n=15 |