Stirling numbers of the first kind: Difference between revisions
Content added Content deleted
(Added Lua) |
|||
Line 1,137: | Line 1,137: | ||
19710908747055261109287881673376044669240511161402863823515728791076863288440277983854056472903481625299174865860036734731122707870406148096000000000000000000 |
19710908747055261109287881673376044669240511161402863823515728791076863288440277983854056472903481625299174865860036734731122707870406148096000000000000000000 |
||
(158 digits, k = 5)</pre> |
(158 digits, k = 5)</pre> |
||
=={{header|Lua}}== |
|||
<syntaxhighlight lang="lua"> |
|||
do -- show some (unsigned) Stirling numbers of the first kind |
|||
local MAX_STIRLING = 12 |
|||
-- construct a matrix of Stirling numbers up to max n, max n |
|||
local s1 = {} |
|||
for n = 0, MAX_STIRLING do |
|||
s1[ n ] = {} |
|||
for k = 0, MAX_STIRLING do s1[ n ][ k ] = 0 end |
|||
end |
|||
s1[ 0 ][ 0 ] = 1 |
|||
for n = 1, MAX_STIRLING do s1[ n ][ 0 ] = 0 end |
|||
for n = 1, MAX_STIRLING do |
|||
for k = 1, n do |
|||
local s1Term = ( ( n - 1 ) * s1[ n - 1 ][ k ] ) |
|||
s1[ n ][ k ] = s1[ n - 1 ][ k - 1 ] + s1Term |
|||
end |
|||
end |
|||
io.write( "Unsigned Stirling numbers of the first kind:\n" ) |
|||
io.write( " k 0" ) |
|||
for k = 1, MAX_STIRLING do |
|||
io.write( string.format( ( k < 6 and "%10d" or "%9d" ), k ) ) |
|||
end |
|||
io.write( "\n" ) |
|||
io.write( " n\n" ); |
|||
for n = 0, MAX_STIRLING do |
|||
io.write( string.format( "%2d", n ), string.format( "%3d", s1[ n ][ 0 ] ) ) |
|||
for k = 1, n do |
|||
io.write( string.format( ( k < 6 and "%10d" or "%9d" ), s1[ n ][ k ] ) ) |
|||
end |
|||
io.write( "\n" ) |
|||
end |
|||
end |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Unsigned Stirling numbers of the first kind: |
|||
k 0 1 2 3 4 5 6 7 8 9 10 11 12 |
|||
n |
|||
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 |
|||
</pre> |
|||
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
=={{header|Mathematica}} / {{header|Wolfram Language}}== |