Stirling numbers of the first kind: Difference between revisions

Content deleted Content added
PureFox (talk | contribs)
Added Wren
Robbie (talk | contribs)
Line 1,245: Line 1,245:
19710908747055261109287881673376044669240511161402863823515728791076863288440277983854056472903481625299174865860036734731122707870406148096000000000000000000
19710908747055261109287881673376044669240511161402863823515728791076863288440277983854056472903481625299174865860036734731122707870406148096000000000000000000
</pre>
</pre>

=={{header|Ruby}}==
{{trans|D}}
<lang ruby>$cache = {}
def sterling1(n, k)
if n == 0 and k == 0 then
return 1
end
if n > 0 and k == 0 then
return 0
end
if k > n then
return 0
end
key = [n, k]
if $cache[key] then
return $cache[key]
end
value = sterling1(n - 1, k - 1) + (n - 1) * sterling1(n - 1, k)
$cache[key] = value
return value
end

MAX = 12
def main
print "Unsigned Stirling numbers of the first kind:\n"
print "n/k"
for n in 0 .. MAX
print "%10d" % [n]
end
print "\n"

for n in 0 .. MAX
print "%-3d" % [n]
for k in 0 .. n
print "%10d" % [sterling1(n, k)]
end
print "\n"
end

print "The maximum value of S1(100, k) =\n"
previous = 0
for k in 1 .. 100
current = sterling1(100, k)
if previous < current then
previous = current
else
print previous, "\n"
print "(%d digits, k = %d)\n" % [previous.to_s.length, k - 1]
break
end
end
end

main()</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|Sidef}}==
=={{header|Sidef}}==