## Digits Of E

### June 19, 2012

modulus | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |

2 | initialization | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |

times ten | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | |

carry | 4 | 3 | 2 | 1 | 1 | 1 | 1 | 1 | 0 | ||

sum | 14 | 13 | 12 | 11 | 11 | 11 | 11 | 11 | 10 | 10 | |

7 | quotient | 7 | 4 | 3 | 2 | 1 | 1 | 1 | 1 | 1 | 0 |

remainder | 0 | 1 | 0 | 1 | 5 | 4 | 3 | 2 | 0 | 10 | |

times ten | 0 | 10 | 0 | 10 | 50 | 40 | 30 | 20 | 0 | 100 | |

carry | 3 | 0 | 3 | 9 | 6 | 4 | 2 | 0 | 9 | ||

sum | 3 | 10 | 3 | 19 | 56 | 44 | 32 | 20 | 9 | 100 | |

1 | quotient | 1 | 3 | 0 | 3 | 9 | 6 | 4 | 2 | 0 | 9 |

remainder | 1 | 1 | 3 | 4 | 2 | 2 | 0 | 2 | 9 | 1 | |

times ten | 10 | 10 | 30 | 40 | 20 | 20 | 0 | 20 | 90 | 10 | |

carry | 6 | 9 | 8 | 3 | 2 | 0 | 3 | 9 | 0 | ||

sum | 16 | 19 | 38 | 43 | 22 | 20 | 3 | 29 | 90 | 10 | |

8 | quotient | 8 | 6 | 9 | 8 | 3 | 2 | 0 | 3 | 9 | 0 |

remainder | 0 | 1 | 2 | 3 | 4 | 6 | 3 | 2 | 0 | 10 | |

times ten | 0 | 10 | 20 | 30 | 40 | 60 | 30 | 20 | 0 | 100 | |

carry | 5 | 6 | 7 | 8 | 9 | 4 | 2 | 0 | 9 | ||

sum | 5 | 16 | 27 | 38 | 49 | 64 | 32 | 20 | 9 | 100 | |

2 | quotient | 2 | 5 | 6 | 7 | 8 | 9 | 4 | 2 | 0 | 9 |

remainder | 1 | 1 | 3 | 3 | 1 | 1 | 0 | 2 | 9 | 1 | |

times ten | 10 | 10 | 30 | 30 | 10 | 10 | 0 | 20 | 90 | 10 | |

carry | 6 | 9 | 6 | 1 | 1 | 0 | 3 | 9 | 0 | ||

sum | 16 | 19 | 36 | 31 | 11 | 10 | 3 | 29 | 90 | 10 | |

8 | quotient | 8 | 6 | 9 | 6 | 1 | 1 | 0 | 3 | 9 | 0 |

remainder | 0 | 1 | 0 | 1 | 5 | 3 | 3 | 2 | 0 | 10 | |

times ten | 0 | 10 | 0 | 10 | 50 | 30 | 30 | 20 | 0 | 100 | |

carry | 3 | 0 | 3 | 9 | 4 | 4 | 2 | 0 | 9 | ||

sum | 3 | 10 | 3 | 19 | 54 | 34 | 32 | 20 | 9 | 100 | |

1 | quotient | 1 | 3 | 0 | 3 | 9 | 4 | 4 | 2 | 0 | 9 |

remainder | 1 | 1 | 3 | 4 | 0 | 6 | 0 | 2 | 9 | 1 | |

times ten | 10 | 10 | 30 | 40 | 0 | 60 | 0 | 20 | 90 | 10 | |

carry | 6 | 9 | 8 | 1 | 8 | 0 | 3 | 9 | 0 | ||

sum | 16 | 19 | 38 | 41 | 8 | 60 | 3 | 29 | 90 | 10 | |

8 | quotient | 8 | 6 | 9 | 8 | 1 | 8 | 0 | 3 | 9 | 0 |

remainder | 0 | 1 | 2 | 1 | 2 | 4 | 3 | 2 | 0 | 10 | |

times ten | 0 | 10 | 20 | 10 | 20 | 40 | 30 | 20 | 0 | 100 | |

carry | 5 | 5 | 2 | 4 | 6 | 4 | 2 | 0 | 9 | ||

sum | 5 | 15 | 22 | 14 | 26 | 44 | 32 | 20 | 9 | 100 | |

2 | quotient | 2 | 5 | 5 | 2 | 4 | 6 | 4 | 2 | 0 | 9 |

remainder | 1 | 0 | 2 | 4 | 2 | 2 | 0 | 2 | 9 | 1 | |

times ten | 10 | 0 | 20 | 40 | 20 | 20 | 0 | 20 | 90 | 10 | |

carry | 2 | 7 | 8 | 3 | 2 | 0 | 3 | 9 | 0 | ||

sum | 12 | 7 | 28 | 43 | 22 | 20 | 3 | 29 | 90 | 10 | |

6 | quotient | 6 | 2 | 7 | 8 | 3 | 2 | 0 | 3 | 9 | 0 |

remainder | 0 | 1 | 0 | 3 | 4 | 6 | 3 | 2 | 0 | 10 |

Advertisements

[…] today’s Programming Praxis exercise, our goal is to implement two algorithms to calculate the digits of e […]

Here’s my Haskell solution for the first algorithm (since my solution for the second one has already been posted in the exercise). A version with comments can be found at http://bonsaicode.wordpress.com/2012/06/19/programming-praxis-digits-of-e/ .

[…] First we reuse the unbounded spigot algorithm for calculating e from the last exercise; […]

Does anybody share a Java or C# code for this exercises?

Basically a direct translation of the haskell code into Python 2.7. I create the input stream and initialize the state vector (z) in ‘stream()’ and eliminated ‘streamDigits()’.

Here is FORTH code for the first algorithm (by Stan & Stanley) Though space is proportional to n, not sure why you mention n**2.

Hi Mike, when I tried your code it gave me error can’t iterate on a function, fixed the problem by changing the last two lines to

print ”.join(str(d) for d in islice(pi_digits(), 10))

print ”.join(imap(str, islice(e_digits(), 14)))

in other words replacing the function pi_digits with pi_digits() which invokes the function and returns an array, similarly replacin e_digits with e_digits()