Lah numbers: Difference between revisions

Line 612:
The maximum l(100,k): 4451900544899314481...0000000000000000000 (164 digits)
</pre>
 
=={{header|Python}}==
<lang python>def factorial(n):
if n == 0:
return 1
res = 1
while n > 0:
res *= n
n -= 1
return res
 
def lah(n,k):
if k == 1:
return factorial(n)
if k == n:
return 1
if k > n:
return 0
if k < 1 or n < 1:
return 0
return (factorial(n) * factorial(n - 1)) / (factorial(k) * factorial(k - 1)) / factorial(n - k)
 
def main():
print "Unsigned Lah numbers: L(n, k):"
print "n/k ",
for i in xrange(13):
print "%11d" % i,
print
for row in xrange(13):
print "%-4d" % row,
for i in xrange(row + 1):
l = lah(row, i)
print "%11d" % l,
print
print "\nMaximum value from the L(100, *) row:"
maxVal = max([lah(100, a) for a in xrange(100)])
print maxVal
 
main()</lang>
{{out}}
<pre>Unsigned Lah numbers: L(n, k):
n/k 0 1 2 3 4 5 6 7 8 9 10 11 12
0 1
1 0 1
2 0 2 1
3 0 6 6 1
4 0 24 36 12 1
5 0 120 240 120 20 1
6 0 720 1800 1200 300 30 1
7 0 5040 15120 12600 4200 630 42 1
8 0 40320 141120 141120 58800 11760 1176 56 1
9 0 362880 1451520 1693440 846720 211680 28224 2016 72 1
10 0 3628800 16329600 21772800 12700800 3810240 635040 60480 3240 90 1
11 0 39916800 199584000 299376000 199584000 69854400 13970880 1663200 118800 4950 110 1
12 0 479001600 2634508800 4390848000 3293136000 1317254400 307359360 43908480 3920400 217800 7260 132 1
 
Maximum value from the L(100, *) row:
44519005448993144810881324947684737529186447692709328597242209638906324913313742508392928375354932241404408343800007105650554669129521241784320000000000000000000000</pre>
 
=={{header|REXX}}==
1,452

edits