Lah numbers: Difference between revisions

2,142 bytes added ,  4 years ago
Added Wren
m (Phix/mpfr)
(Added Wren)
Line 1,346:
44519005448993144810881324947684737529186447692709328597242209638906324913313742508392928375354932241404408343800007105650554669129521241784320000000000000000000000
(164 digits, k=10)
</pre>
 
=={{header|Wren}}==
{{libheader|Wren-fmt}}
<lang ecmascript>import "/fmt" for Fmt
 
var fact = Fn.new { |n|
if (n < 2) return 1
var fact = 1
for (i in 2..n) fact = fact * i
return fact
}
 
var lah = Fn.new { |n, k|
if (k == 1) return fact.call(n)
if (k == n) return 1
if (k > n) return 0
if (k < 1 || n < 1) return 0
return (fact.call(n) * fact.call(n-1)) / (fact.call(k) * fact.call(k-1)) / fact.call(n-k)
}
 
System.print("Unsigned Lah numbers: l(n, k):")
System.write("n/k")
for (i in 0..12) System.write("%(Fmt.d(10, i)) ")
System.print("\n" + "-" * 145)
for (n in 0..12) {
System.write("%(Fmt.d(2, n)) ")
for (k in 0..n) System.write("%(Fmt.d(10, lah.call(n, k))) ")
System.print()
}</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
</pre>
 
9,492

edits