fibonacci_k-th_order.pl 746 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/perl
  2. # Daniel "Trizen" Șuteu
  3. # Date: 20 April 2018
  4. # https://github.com/trizen
  5. # Compute the k-th order Fibonacci numbers.
  6. # See also:
  7. # https://oeis.org/A000045 (2-nd order: Fibonacci numbers)
  8. # https://oeis.org/A000073 (3-rd order: Tribonacci numbers)
  9. # https://oeis.org/A000078 (4-th order: Tetranacci numbers)
  10. # https://oeis.org/A001591 (5-th order: Pentanacci numbers)
  11. use 5.020;
  12. use strict;
  13. use warnings;
  14. use ntheory qw(vecsum);
  15. use experimental qw(signatures);
  16. sub kth_order_fibonacci ($n, $k = 2) {
  17. my @A = ((0) x ($k - 1), 1);
  18. for (1 .. $n) {
  19. @A = (@A[1 .. $k - 1], vecsum(@A[0 .. $k - 1]));
  20. }
  21. return $A[-1];
  22. }
  23. for my $n (0 .. 20) {
  24. say kth_order_fibonacci($n, 5);
  25. }