The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SETI::Drake - Estimate the number of interstellar communicating civilizations

SYNOPSIS

use SETI::Drake;
$d = SETI::Drake->new(
    R  => $stars,
    fp => $planets,
    ne => $support,
    fl => $life,
    fi => $intelligence,
    fc => $communication,
    L  => $lifespan,
);
$n = $d->N;
printf 'You are ' .
  ($n > $threshold ? 'opt' : 'pess') .
  "imistic: %0.2f\n", $n;

DESCRIPTION

A SETI::Drake object answers the question, "How many detectible, intelligent, interstellar communicating civilizations might be out there, in the galaxy?" by providing a single method, N(), which is a prediction based on the product of seven factors. In other words, this module does nothing more than multiply seven numbers together.

According to NOVA, Drake's values were:

R  => 5,     # Number of stars formed per year.
fp => 0.5,   # Fraction of those stars that form planets.
ne => 2,     # Average number of those planets that can support life.
fl => 1,     # Fraction of those planets that actually do develop life.
fi => 0.2,   # Fraction of those planets that then evolve intelligence.
fc => 1,     # Fraction of those planets that develop interstellar communication.
L  => 10000, # Average lifetime (in years) of an interstellar communicating civilization.

According to Wikipedia, Drake's values were:

R  => 10,  # Annual rate of star creation in our galaxy.
fp => 0.5, # Fraction of those stars which have planets.
ne => 2,   # Average number of these planets that can potentially support life.
fl => 1,   # Fraction of the above that develop life.
fi => 0.1, # Fraction of the above that develop intelligent life.
fc => 0.1, # Fraction of the above that communicate.
L  => 10,  # Expected lifetime (in years) of such a civilisation.

On Cosmos, Carl Sagan computes it this way:

R  => 400_000_000_000,  # Number of stars in the Milky Way.
fp => 1/4,  # Fraction of stars that have planets.
ne => 2,    # Worlds suitable for sustaining life per system.
fl => 1/2,  # Fraction of suitable worlds in which life does arise
fi => 1/10, # Fraction of worlds where intelligent life evolves.
fc => 1/10, # Fraction of worlds that produce a technical civilization.
L  => 1/100_000_000, # Chance that we might destroy ourselves tomorrow.

METHODS

new

my $d = SETI::Drake->new($arguments);

Return a new SETI::Drake instance. If no equation variables are provided, Frank Drake's choices (from his 2004 chalkboard video interview on Nova) are used.

N

$N = $d->N;

Return the value of the Drake equation:

N = R* x fp x ne x fl x fc x L

TO DO

Use Math::BigRat.

SEE ALSO

http://www.youtube.com/watch?v=0Ztl8CG3Sys - Carl Sagan explains it.

http://www.setileague.org/general/drake.htm

http://www.pbs.org/wgbh/nova/origins/drake.html

http://en.wikipedia.org/wiki/Drake_equation

http://www.hawking.org.uk/lectures/life.html

http://setiathome.berkeley.edu

COPYRIGHT

Copyright 2004, Gene Boggs, All Rights Reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

AUTHOR

Gene Boggs <gene@cpan.org>