Improved display of generators

This commit is contained in:
Cédric Bonhomme 2017-03-10 07:58:12 +01:00
parent 9feb1aa72b
commit a94128e6c6
No known key found for this signature in database
GPG key ID: A1CB94DE57B7A70D
2 changed files with 20 additions and 21 deletions

View file

@ -122,7 +122,7 @@ elif arguments.command == 'list-generators':
import inspect import inspect
all_generators = inspect.getmembers(generators, inspect.isfunction) all_generators = inspect.getmembers(generators, inspect.isfunction)
for generator in all_generators: for generator in all_generators:
print('Generator id:\n {}\nDesciption:\n {}'.format( print('Generator id:')
crayons.green(generator[0]), print(' {}'.format(crayons.green(generator[0], bold=True)))
generator[1].__doc__)) print('Desciption:')
print('') print(' {}'.format(generator[1].__doc__))

View file

@ -20,9 +20,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/> # along with this program. If not, see <http://www.gnu.org/licenses/>
__author__ = "Cedric Bonhomme" __author__ = "Cedric Bonhomme"
__version__ = "$Revision: 0.2 $" __version__ = "$Revision: 0.3 $"
__date__ = "$Date: 2011/12/28 $" __date__ = "$Date: 2011/12/28 $"
__revision__ = "$Date: 2012/12/14 $" __revision__ = "$Date: 2017/03/10 $"
__license__ = "GPLv3" __license__ = "GPLv3"
import math import math
@ -38,8 +38,8 @@ def identity() -> Iterator[int]:
n += 1 n += 1
def triangular_numbers() -> Iterator[int]: def triangular_numbers() -> Iterator[int]:
"""http://oeis.org/A000217 """Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n.
Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n. http://oeis.org/A000217
""" """
n = 0 n = 0
while True: while True:
@ -47,8 +47,8 @@ def triangular_numbers() -> Iterator[int]:
n += 1 n += 1
def fermat() -> Iterator[int]: def fermat() -> Iterator[int]:
"""https://oeis.org/A000215 """Generate the n-th Fermat Number.
Generate the n-th Fermat Number. https://oeis.org/A000215
""" """
y = 3 y = 3
while True: while True:
@ -56,8 +56,8 @@ def fermat() -> Iterator[int]:
y = pow(y-1,2)+1 y = pow(y-1,2)+1
def mersenne() -> Iterator[int]: def mersenne() -> Iterator[int]:
"""https://oeis.org/A001348 """Generate 2^n - 1.
Generate 2^n - 1. https://oeis.org/A001348
""" """
y = 3 y = 3
while True: while True:
@ -65,8 +65,8 @@ def mersenne() -> Iterator[int]:
y = 2*y + 1 y = 2*y + 1
def eratosthenes() -> Iterator[int]: def eratosthenes() -> Iterator[int]:
"""https://oeis.org/A000040 """Generate the prime numbers with the sieve of Eratosthenes.
Generate the prime numbers with the sieve of Eratosthenes. https://oeis.org/A000040
""" """
d = {} # type: Dict[int, List[int]] d = {} # type: Dict[int, List[int]]
for i in itertools.count(2): for i in itertools.count(2):
@ -79,8 +79,8 @@ def eratosthenes() -> Iterator[int]:
yield i yield i
def composite() -> Iterator[int]: def composite() -> Iterator[int]:
"""https://oeis.org/A002808 """Generate the composite numbers using the sieve of Eratosthenes.
Generate the composite numbers using the sieve of Eratosthenes. https://oeis.org/A002808
""" """
p1 = 3 p1 = 3
for p2 in eratosthenes(): for p2 in eratosthenes():
@ -89,8 +89,8 @@ def composite() -> Iterator[int]:
p1 = p2 p1 = p2
def carmichael() -> Iterator[int]: def carmichael() -> Iterator[int]:
"""https://oeis.org/A002997 """Composite numbers n such that a^(n-1) == 1 (mod n) for every a coprime to n.
Composite numbers n such that a^(n-1) == 1 (mod n) for every a coprime to n. https://oeis.org/A002997
""" """
for m in composite(): for m in composite():
for a in range(2, m): for a in range(2, m):
@ -110,9 +110,8 @@ def ackermann(m: int, n: int) -> int:
return ackermann(m - 1, ackermann(m, n - 1)) return ackermann(m - 1, ackermann(m, n - 1))
def fibonacci() -> Iterator[int]: def fibonacci() -> Iterator[int]:
"""https://oeis.org/A000045 """Generate the sequence of Fibonacci.
A generator for Fibonacci numbers, goes to next number in series on each call. https://oeis.org/A000045
This generator start at 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, ...
""" """
a, b = 1, 2 a, b = 1, 2
while True: while True: