Bell numbers: Difference between revisions

Content added Content deleted
(Add Cowgol)
(Add ALGOL-M)
Line 31: Line 31:
:* '''[[oeis:A000110|OEIS:A000110 Bell or exponential numbers]]'''
:* '''[[oeis:A000110|OEIS:A000110 Bell or exponential numbers]]'''
:* '''[[oeis:A011971|OEIS:A011971 Aitken's array]]'''
:* '''[[oeis:A011971|OEIS:A011971 Aitken's array]]'''

=={{header|ALGOL-M}}==
<lang algolm>begin
integer function index(row, col);
integer row, col;
index := row * (row-1)/ 2 + col;

integer ROWS; ROWS := 15;
begin
decimal(11) array bell[0:ROWS*(ROWS+1)/2];
integer i, j;

bell[index(1, 0)] := 1.;
for i := 2 step 1 until ROWS do
begin
bell[index(i, 0)] := bell[index(i-1, i-2)];
for j := 1 step 1 until i-1 do
bell[index(i,j)] := bell[index(i,j-1)] + bell[index(i-1,j-1)];
end;
write("First fifteen Bell numbers:");
for i := 1 step 1 until ROWS do
begin
write(i);
writeon(": ");
writeon(bell[index(i,0)]);
end;
write("");
write("First ten rows of Bell's triangle:");
for i := 1 step 1 until 10 do
begin
write("");
for j := 0 step 1 until i-1 do
writeon(bell[index(i,j)]);
end;
end;
end</lang>
{{out}}
<pre>First fifteen Bell numbers:
1: 1.0
2: 1.0
3: 2.0
4: 5.0
5: 15.0
6: 52.0
7: 203.0
8: 877.0
9: 4140.0
10: 21147.0
11: 115975.0
12: 678570.0
13: 4213597.0
14: 27644437.0
15: 190899322.0

First ten rows of Bell's triangle:
1.0
1.0 2.0
2.0 3.0 5.0
5.0 7.0 10.0 15.0
15.0 20.0 27.0 37.0 52.0
52.0 67.0 87.0 114.0 151.0 203.0
203.0 255.0 322.0 409.0 523.0 674.0 877.0
877.0 1080.0 1335.0 1657.0 2066.0 2589.0 3263.0 4140.0
4140.0 5017.0 6097.0 7432.0 9089.0 11155.0 13744.0 17007.0 21147.0
21147.0 25287.0 30304.0 36401.0 43833.0 52922.0 64077.0 77821.0 94828.0 115975.0</pre>


=={{header|Arturo}}==
=={{header|Arturo}}==