Bell numbers: Difference between revisions
Content added Content deleted
(Added Quackery.) |
|||
Line 1,527: | Line 1,527: | ||
4140, 5017, 6097, 7432, 9089, 11155, 13744, 17007, 21147 |
4140, 5017, 6097, 7432, 9089, 11155, 13744, 17007, 21147 |
||
21147, 25287, 30304, 36401, 43833, 52922, 64077, 77821, 94828, 115975</pre> |
21147, 25287, 30304, 36401, 43833, 52922, 64077, 77821, 94828, 115975</pre> |
||
=={{header|jq}== |
|||
<lang jq># nth Bell number |
|||
def bell: |
|||
. as $n |
|||
| if $n < 0 then "non-negative integer expected" |
|||
elif $n < 2 then 1 |
|||
else |
|||
reduce range(1; $n) as $i ([1]; |
|||
reduce range(1; $i) as $j (.; |
|||
.[$i - $j] as $x |
|||
| .[$i - $j - 1] += $x ) |
|||
| .[$i] = .[0] + .[$i - 1] ) |
|||
| .[$n - 1] |
|||
end; |
|||
# The task |
|||
range(1;51) | bell</lang> |
|||
{{out}} |
|||
For displaying the results, we will use gojq, the Go implementation of jq, as it supports unbounded-precision integer arithmetic. |
|||
<pre>1 |
|||
2 |
|||
5 |
|||
15 |
|||
... |
|||
37450059502461511196505342096431510120174682 |
|||
628919796303118415420210454071849537746015761 |
|||
10726137154573358400342215518590002633917247281 |
|||
185724268771078270438257767181908917499221852770 |
|||
</pre> |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
Line 1,553: | Line 1,583: | ||
for i in 1:50 |
for i in 1:50 |
||
println(bellnum(i)) |
println(bellnum(i)) |
||
end |
end</lang> |
||
{{out}} |
|||
<pre> |
<pre> |
||
1 |
1 |