From 3f350c35696fe5ee28064c74ad49f3db92bf22a6 Mon Sep 17 00:00:00 2001 From: AdrienCos Date: Tue, 4 Jun 2019 11:40:50 -0400 Subject: [PATCH] Encapsulated the ackermann_naive generator, updated revision dates --- bin/stegano-lsb-set | 2 +- stegano/lsbset/generators.py | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/bin/stegano-lsb-set b/bin/stegano-lsb-set index ccb724e..67f65c1 100755 --- a/bin/stegano-lsb-set +++ b/bin/stegano-lsb-set @@ -22,7 +22,7 @@ __author__ = "Cedric Bonhomme" __version__ = "$Revision: 0.7 $" __date__ = "$Date: 2016/03/18 $" -__revision__ = "$Date: 2017/05/16 $" +__revision__ = "$Date: 2019/06/04 $" __license__ = "GPLv3" import inspect diff --git a/stegano/lsbset/generators.py b/stegano/lsbset/generators.py index 5db3a7f..e2b2479 100644 --- a/stegano/lsbset/generators.py +++ b/stegano/lsbset/generators.py @@ -22,7 +22,7 @@ __author__ = "Cedric Bonhomme" __version__ = "$Revision: 0.3 $" __date__ = "$Date: 2011/12/28 $" -__revision__ = "$Date: 2017/03/10 $" +__revision__ = "$Date: 2019/06/04 $" __license__ = "GPLv3" import itertools @@ -107,15 +107,24 @@ def carmichael() -> Iterator[int]: yield m -def ackermann_naive(m: int, n: int) -> int: +def ackermann_slow(m: int, n: int) -> int: """Ackermann number. """ if m == 0: return n + 1 elif n == 0: - return ackermann_naive(m - 1, 1) + return ackermann_slow(m - 1, 1) else: - return ackermann_naive(m - 1, ackermann_naive(m, n - 1)) + return ackermann_slow(m - 1, ackermann_slow(m, n - 1)) + + +def ackermann_naive(m: int) -> Iterator[int]: + """Naive Ackermann encapsulated in a generator + """ + n = 0 + while True: + yield ackermann_slow(m, n) + n += 1 def ackermann_fast(m: int, n: int) -> int: @@ -136,6 +145,7 @@ def ackermann_fast(m: int, n: int) -> int: else: return n + 1 + def ackermann(m: int) -> Iterator[int]: """Ackermann encapsulated in a generator. """ @@ -144,6 +154,7 @@ def ackermann(m: int) -> Iterator[int]: yield ackermann_fast(m, n) n += 1 + def fibonacci() -> Iterator[int]: """Generate the sequence of Fibonacci. https://oeis.org/A000045