Binomial transform: Difference between revisions
Content added Content deleted
(J draft) |
|||
Line 363: | Line 363: | ||
[1 0 0 1 0 1 1 1 2 2 3 4 5 7 9 12 16 21 28 37] |
[1 0 0 1 0 1 1 1 2 2 3 4 5 7 9 12 16 21 28 37] |
||
</pre> |
</pre> |
||
=={{header|J}}== |
|||
Implementation: |
|||
<syntaxhighlight lang=J>forward=: {{ y +/ .* !/~ i.#y }} |
|||
reverse=: {{ y +/ .* (!/~ * _1^+/~) i.#y }} |
|||
selfinv=: {{ y +/ .* (!/~ * _1^]) i.#y }}</syntaxhighlight> |
|||
Task examples: |
|||
<syntaxhighlight lang=J> NB. Catalan |
|||
((! +:) % >:) i.15x |
|||
1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 |
|||
forward ((! +:) % >:) i.15x |
|||
1 2 5 15 51 188 731 2950 12235 51822 223191 974427 4302645 19181100 86211885 |
|||
reverse ((! +:) % >:) i.15x |
|||
1 0 1 1 3 6 15 36 91 232 603 1585 4213 11298 30537 |
|||
selfinv ((! +:) % >:) i.15x |
|||
1 0 1 _1 3 _6 15 _36 91 _232 603 _1585 4213 _11298 30537 |
|||
NB. natural number is prime |
|||
1 p: 1+i.15 |
|||
0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 |
|||
forward 1 p: 1+i.15 |
|||
0 1 3 6 11 20 37 70 134 255 476 869 1564 2821 5201 |
|||
reverse 1 p: 1+i.15 |
|||
0 1 _1 0 3 _10 25 _56 118 _237 456 _847 1540 _2795 5173 |
|||
selfinv 1 p: 1+i.15 |
|||
0 _1 _1 0 3 10 25 56 118 237 456 847 1540 2795 5173 |
|||
NB. Fibonacci |
|||
(, _1 _2 +/@:{ ])^:15] 0 1 |
|||
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 |
|||
forward (, _1 _2 +/@:{ ])^:15] 0 1 |
|||
0 1 3 8 21 55 144 377 987 2584 6765 17711 46368 121393 317811 832040 2178309 |
|||
reverse (, _1 _2 +/@:{ ])^:15] 0 1 |
|||
0 1 _1 2 _3 5 _8 13 _21 34 _55 89 _144 233 _377 610 _987 |
|||
selfinv (, _1 _2 +/@:{ ])^:15] 0 1 |
|||
0 _1 _1 _2 _3 _5 _8 _13 _21 _34 _55 _89 _144 _233 _377 _610 _987 |
|||
NB. Padovan |
|||
(],+/@(_2 _3{]))^:([-3:)&1 0 0(15) |
|||
1 0 0 1 0 1 1 1 2 2 3 4 5 7 9 |
|||
forward (],+/@(_2 _3{]))^:([-3:)&1 0 0(15) |
|||
1 1 1 2 5 12 28 65 151 351 816 1897 4410 10252 23833 |
|||
reverse (],+/@(_2 _3{]))^:([-3:)&1 0 0(15) |
|||
1 _1 1 0 _3 10 _24 49 _89 145 _208 245 _174 _176 1121 |
|||
selfinv (],+/@(_2 _3{]))^:([-3:)&1 0 0(15) |
|||
1 1 1 0 _3 _10 _24 _49 _89 _145 _208 _245 _174 176 1121</syntaxhighlight> |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |