35 lines
710 B
Ruby
35 lines
710 B
Ruby
def bellTriangle(n)
|
|
tri = Array.new(n)
|
|
for i in 0 .. n - 1 do
|
|
tri[i] = Array.new(i)
|
|
for j in 0 .. i - 1 do
|
|
tri[i][j] = 0
|
|
end
|
|
end
|
|
tri[1][0] = 1
|
|
for i in 2 .. n - 1 do
|
|
tri[i][0] = tri[i - 1][i - 2]
|
|
for j in 1 .. i - 1 do
|
|
tri[i][j] = tri[i][j - 1] + tri[i - 1][j - 1]
|
|
end
|
|
end
|
|
return tri
|
|
end
|
|
|
|
def main
|
|
bt = bellTriangle(51)
|
|
puts "First fifteen and fiftieth Bell numbers:"
|
|
for i in 1 .. 15 do
|
|
puts "%2d: %d" % [i, bt[i][0]]
|
|
end
|
|
puts "50: %d" % [bt[50][0]]
|
|
puts
|
|
|
|
puts "The first ten rows of Bell's triangle:"
|
|
for i in 1 .. 10 do
|
|
puts bt[i].inspect
|
|
end
|
|
end
|
|
|
|
main()
|