Math::NumSeq -- number sequences
# only a base class, use one of the actual classes such as use Math::NumSeq::Squares; my $seq = Math::NumSeq::Squares->new; my ($i, $value) = $seq->next;
This is a base class for number sequences. Sequence objects can iterate through the values, and some sequences have random access and predicate. It's a touch rough yet.
The idea is to generate things like squares or primes in a generic way. Some sequences, like squares, are so easy there's no need for this except for the genericness. Other sequences are trickier and an iterator is a good way to go through the values.
In the following "Foo" is one of the actual subclass names.
$seq = Math::NumSeq::Foo->new (key=>value,...)
Create and return a new sequence object.
($i, $value) = $seq->next()
Return the next index and value in the sequence.
$seq->rewind()
Rewind the sequence to its starting point.
$str = $seq->description()
A human-readable description of the sequence.
$value = $seq->values_min()
$value = $seq->values_max()
Return the minimum or maximum value taken by values in the sequence, or undef if unknown or infinity.
undef
$ret = $seq->characteristic($key)
Return something if the sequence has a $key (a string) characteristic, or undef if not. This is intended as a loose set of expressing features or properties a sequence might have.
$key
digits the radix (an integer), if sequence is digits
$str = $seq->oeis_anum()
Return the Online Encyclopedia of Integer Sequences A-number (a string) of $seq, or undef if not in the OEIS or not known. For example
$seq
my $seq = Math::NumSeq::Squares->new; my $anum = $seq->oeis_anum; # gives $anum eq "A000290"
The web page for that is then
http://oeis.org/A000290
Sometimes the OEIS has duplicates, ie. two A-numbers which are the same sequence. $seq->oeis_anum() generally returns whichever is the primary one, at least for accidental duplication.
$seq->oeis_anum()
The following methods are only implemented for some sequences, since it's sometimes difficult to generate an arbitrary numbered element etc. Check with $seq->can('ith') etc before using.
$seq->can('ith')
$value = $seq->ith($i)
Return the $i'th value in the sequence. Only some sequence classes implement this method.
$i
$bool = $seq->pred($value)
Return true if $value occurs in the sequence. For example for the squares this would return true if $value is a perfect square or false if not.
$value
Math::NumSeq::Squares, Math::NumSeq::Cubes, Math::NumSeq::Pronic, Math::NumSeq::Triangular, Math::NumSeq::Polygonal, Math::NumSeq::Tetrahedral, Math::NumSeq::StarNumbers, Math::NumSeq::Even, Math::NumSeq::Odd
Math::NumSeq::Factorials, Math::NumSeq::Primorials, Math::NumSeq::Fibonacci, Math::NumSeq::LucasNumbers
Math::NumSeq::FractionDigits, Math::NumSeq::SqrtDigits
Math::NumSeq::DigitLength, Math::NumSeq::DigitLengthCumulative, Math::NumSeq::RadixWithoutDigit, Math::NumSeq::HarshadNumbers
Math::NumSeq::Beastly, Math::NumSeq::Repdigits, Math::NumSeq::Palindromes
Math::NumSeq::CullenNumbers, Math::NumSeq::ProthNumbers, Math::NumSeq::WoodallNumbers
Math::NumSeq::CollatzSteps
Math::Sequence and Math::Series, for symbolic recursive sequence definitions
math-image
http://user42.tuxfamily.org/math-numseq/index.html
Copyright 2010, 2011 Kevin Ryde
Math-NumSeq is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Math-NumSeq is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Math-NumSeq. If not, see <http://www.gnu.org/licenses/>.
To install Math::NumSeq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Math::NumSeq
CPAN shell
perl -MCPAN -e shell install Math::NumSeq
For more information on module installation, please visit the detailed CPAN module installation guide.