fibonacci_closed_form_2.pl 440 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 29 October 2015
  5. # Website: https://github.com/trizen
  6. # A very simple and fast closed-form to the Fibonacci sequence
  7. use 5.010;
  8. use strict;
  9. use warnings;
  10. sub fib {
  11. my ($n) = @_;
  12. state $S = sqrt(1.25) + 0.5;
  13. state $T = sqrt(1.25) - 0.5;
  14. state $W = $S + $T;
  15. ($S**$n - (-$T)**($n)) / $W;
  16. }
  17. for my $n (1 .. 20) {
  18. say "F($n) = ", fib($n);
  19. }