Lah numbers: Difference between revisions
Content deleted Content added
m →{{header|REXX}}: added wording to the REXX section header. |
julia example |
||
Line 181: | Line 181: | ||
44519005448993144810881324947684737529186447692709328597242209638906324913313742508392928375354932241404408343800007105650554669129521241784320000000000000000000000 |
44519005448993144810881324947684737529186447692709328597242209638906324913313742508392928375354932241404408343800007105650554669129521241784320000000000000000000000 |
||
which has 164 digits. |
which has 164 digits. |
||
</pre> |
|||
=={{header|Julia}}== |
|||
<lang julia>using Combinatorics |
|||
function lah(n, k, signed=false) |
|||
if n == 0 | k == 0 |
|||
return 0 |
|||
elseif n == k |
|||
return 1 |
|||
elseif k == 1 |
|||
return factorial(n) |
|||
else |
|||
unsignedvalue = binomial(n, k) * binomial(n - 1, k - 1) * factorial(n - k) |
|||
if signed && isodd(n) |
|||
return -1 * unsignedvalue |
|||
else |
|||
return unsignedvalue |
|||
end |
|||
end |
|||
end |
|||
function printlahtable(kmax) |
|||
println(" ", mapreduce(i -> lpad(i, 12), *, 0:kmax)) |
|||
sstring(n, k) = begin i = (n >= k) ? lah(n, k) : 0; lpad(k > n && i == 0 ? "" : i, 12) end |
|||
for n in 0:kmax |
|||
println(rpad(n, 2) * mapreduce(k -> sstring(n, k), *, 0:kmax)) |
|||
end |
|||
end |
|||
printlahtable(12) |
|||
println("\nThe maxiumum of lah(100, _) is: ", maximum(k -> lah(BigInt(100), BigInt(k)), 1:100)) |
|||
</lang>{{out}} |
|||
<pre> |
|||
0 1 2 3 4 5 6 7 8 9 10 11 12 |
|||
0 0 |
|||
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 |
|||
The maxiumum of lah(100, _) is: 44519005448993144810881324947684737529186447692709328597242209638906324913313742508392928375354932241404408343800007105650554669129521241784320000000000000000000000 |
|||
</pre> |
</pre> |
||