Math::NumSeq::DigitCount -- count of a given digit


 use Math::NumSeq::DigitCount;
 my $seq = Math::NumSeq::DigitCount->new (radix => 10,
                                          digit => 9);
 my ($i, $value) = $seq->next;


The count of how many of a given digit is in $i when written out in a given radix. The default is to count how many 9s in decimal.

    0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ...
    starting i=0

For example i=19 has a single "9" so value=1.

The radix and digit options can select a different number base or different digit to count. For example to count the 0-bits in binary,

    # radix=>2, digit=>0
    0, 0, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 2, 1, 1, 0, 4, 3, 3, 2, ...
    starting i=0

i=0 is treated as no digits at all, so it has value=0 for the count of 0-bits, and similarly in other bases counting 0 digits.

Option digit => -1 gives the highest digit in the radix, ie. radix-1. This is the default, so if radix is given the count is of its biggest digit.


See "FUNCTIONS" in Math::NumSeq for behaviour common to all sequence classes.

$seq = Math::NumSeq::DigitCount->new (radix => $r, digit => $d)

Create and return a new sequence object.

digit can be -1 to mean digit radix-1, the highest digit in the radix.

Random Access

$value = $seq->ith($i)

Return how many of the given digit is in $i written in radix.

$bool = $seq->pred($value)

Return true if $value might occur as a digit count, which means simply $value>=0.


Math::NumSeq, Math::NumSeq::DigitLength, Math::NumSeq::RadixWithoutDigit



Copyright 2010, 2011, 2012, 2013, 2014, 2016, 2017, 2019, 2020 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 <>.