Stirling numbers of the first kind: Difference between revisions

m (→‎{{header|REXX}}: used a smaller font size for an output section.)
Line 286:
19710908747055261109287881673376044669240511161402863823515728791076863288440277983854056472903481625299174865860036734731122707870406148096000000000000000000
</pre>
 
=={{header|D}}==
{{trans|Java}}
<lang d>import std.bigint;
import std.functional;
import std.stdio;
 
alias sterling1 = memoize!sterling1Impl;
BigInt sterling1Impl(int n, int k) {
if (n == 0 && k == 0) {
return BigInt(1);
}
if (n > 0 && k == 0) {
return BigInt(0);
}
if (k > n) {
return BigInt(0);
}
return sterling1(n - 1, k - 1) + (n - 1) * sterling1(n - 1, k);
}
 
void main() {
writeln("Unsigned Stirling numbers of the first kind:");
int max = 12;
write("n/k");
foreach (n; 0 .. max + 1) {
writef("%10d", n);
}
writeln;
foreach (n; 0 .. max + 1) {
writef("%-3d", n);
foreach (k; 0 .. n + 1) {
writef("%10s", sterling1(n, k));
}
writeln;
}
writeln("The maximum value of S1(100, k) = ");
auto previous = BigInt(0);
foreach (k; 1 .. 101) {
auto current = sterling1(100, k);
if (previous < current) {
previous = current;
} else {
import std.conv;
 
writeln(previous);
writefln("(%d digits, k = %d)", previous.to!string.length, k - 1);
break;
}
}
}</lang>
{{out}}
<pre>Unsigned Stirling numbers of the first kind:
n/k 0 1 2 3 4 5 6 7 8 9 10 11 12
0 1
1 0 1
2 0 1 1
3 0 2 3 1
4 0 6 11 6 1
5 0 24 50 35 10 1
6 0 120 274 225 85 15 1
7 0 720 1764 1624 735 175 21 1
8 0 5040 13068 13132 6769 1960 322 28 1
9 0 40320 109584 118124 67284 22449 4536 546 36 1
10 0 362880 1026576 1172700 723680 269325 63273 9450 870 45 1
11 0 3628800 10628640 12753576 8409500 3416930 902055 157773 18150 1320 55 1
12 0 39916800 120543840 150917976 105258076 45995730 13339535 2637558 357423 32670 1925 66 1
The maximum value of S1(100, k) =
19710908747055261109287881673376044669240511161402863823515728791076863288440277983854056472903481625299174865860036734731122707870406148096000000000000000000
(158 digits, k = 5)</pre>
 
=={{header|Factor}}==
1,452

edits