Padovan n-step number sequences: Difference between revisions
Content added Content deleted
(Add Rust implementation) |
(Added Sidef) |
||
Line 1,282: | Line 1,282: | ||
N=7: 1,1,1,2,3,5,8,13,21,33,53,85,136,218,349, |
N=7: 1,1,1,2,3,5,8,13,21,33,53,85,136,218,349, |
||
N=8: 1,1,1,2,3,5,8,13,21,34,54,87,140,225,362, |
N=8: 1,1,1,2,3,5,8,13,21,34,54,87,140,225,362, |
||
</pre> |
|||
=={{header|Sidef}}== |
|||
{{trans|Perl}} |
|||
<lang ruby>func padovan(N) { |
|||
Enumerator({|callback| |
|||
var n = 2 |
|||
var pn = [1, 1, 1] |
|||
loop { |
|||
pn << sum(pn[n-N .. (n++-1) -> grep { _ >= 0 }]) |
|||
callback(pn[-4]) |
|||
} |
|||
}) |
|||
} |
|||
for n in (2..8) { |
|||
say "n = #{n} | #{padovan(n).first(25).join(' ')}" |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
n = 2 | 1 1 1 2 2 3 4 5 7 9 12 16 21 28 37 49 65 86 114 151 200 265 351 465 616 |
|||
n = 3 | 1 1 1 2 3 4 6 9 13 19 28 41 60 88 129 189 277 406 595 872 1278 1873 2745 4023 5896 |
|||
n = 4 | 1 1 1 2 3 5 7 11 17 26 40 61 94 144 221 339 520 798 1224 1878 2881 4420 6781 10403 15960 |
|||
n = 5 | 1 1 1 2 3 5 8 12 19 30 47 74 116 182 286 449 705 1107 1738 2729 4285 6728 10564 16587 26044 |
|||
n = 6 | 1 1 1 2 3 5 8 13 20 32 51 81 129 205 326 518 824 1310 2083 3312 5266 8373 13313 21168 33657 |
|||
n = 7 | 1 1 1 2 3 5 8 13 21 33 53 85 136 218 349 559 895 1433 2295 3675 5885 9424 15091 24166 38698 |
|||
n = 8 | 1 1 1 2 3 5 8 13 21 34 54 87 140 225 362 582 936 1505 2420 3891 6257 10061 16178 26014 41830 |
|||
</pre> |
</pre> |
||