Stirling numbers of the first kind: Difference between revisions

Added 11l
(Added 11l)
Line 48:
 
<br><br>
 
=={{header|11l}}==
{{trans|Python}}
 
<lang 11l>[(Int, Int) = BigInt] computed
 
F sterling1(n, k)
V key = (n, k)
 
I key C :computed
R :computed[key]
I n == k == 0
R BigInt(1)
I n > 0 & k == 0
R BigInt(0)
I k > n
R BigInt(0)
V result = sterling1(n - 1, k - 1) + (n - 1) * sterling1(n - 1, k)
:computed[key] = result
R result
 
print(‘Unsigned Stirling numbers of the first kind:’)
V MAX = 12
print(‘n/k’.ljust(10), end' ‘’)
L(n) 0 .. MAX
print(String(n).rjust(10), end' ‘’)
print()
L(n) 0 .. MAX
print(String(n).ljust(10), end' ‘’)
L(k) 0 .. n
print(String(sterling1(n, k)).rjust(10), end' ‘’)
print()
print(‘The maximum value of S1(100, k) = ’)
BigInt previous = 0
L(k) 1 .. 100
V current = sterling1(100, k)
I current > previous
previous = current
E
print("#.\n(#. digits, k = #.)\n".format(previous, String(previous).len, k - 1))
L.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|ALGOL 68}}==
1,481

edits