23 lines
636 B
Awk
23 lines
636 B
Awk
# syntax: GAWK --bignum -f BELL_NUMBERS.AWK
|
|
BEGIN {
|
|
arr[0,0] = 1
|
|
printf(" 0: %10d\n",arr[0,0])
|
|
printf(" 1: %10d\n",arr[0,0])
|
|
for (i=1; i<50; i++) {
|
|
arr[i,0] = arr[i-1,i-1]
|
|
for (j=1; j<=i; j++) {
|
|
arr[i,j] = arr[i,j-1] + arr[i-1,j-1]
|
|
bt[i] = sprintf("%s%s ",bt[i],arr[i-1,j-1]) # build Bell's triangle
|
|
}
|
|
if (i <= 13) {
|
|
printf("%2d: %10d\n",i+1,arr[i,i])
|
|
}
|
|
if (i == 49) {
|
|
printf("%2d: %d (%d digits)\n\n",i+1,arr[i,i],length(arr[i,i]))
|
|
}
|
|
}
|
|
for (i=1; i<=10; i++) { # show Bell's triangle
|
|
printf("%2d: %s\n",i,bt[i])
|
|
}
|
|
exit(0)
|
|
}
|