cowboy
cowboy

Reputation: 85

how to write a algorithm given the condition using python

Approximate the value of n for the formula (1-1/n)**n for which the difference between the value of n in the formula and 1/e is less than 0.0001.

How can we do using while and for loop in python .

I tried using while with the following code

from math import exp
value = 1/exp(1) # e being the exponential
n = 1;

while check < 0.0001:
    n=n+1
    formula = (1-1/n)^n
    check = value - formula
    if check <0.0001:
        print(n) 

but since check is not defined before while the program doesn't run.

Is there any better solution?

Upvotes: 0

Views: 63

Answers (1)

Miriam Farber
Miriam Farber

Reputation: 19634

Define check at the beginning, and replace ^ with **, as the latter one is the correct way to write power in python

import math
value = 1/math.exp(1) # e being the exponential
n = 1
check=1

while check > 0.0001:
    n=n+1
    formula = (1-1/n)**n
    check = value - formula

print(n) 

By the way, ^ is the bitwise xor operator in python. You can look here for further description: http://python-reference.readthedocs.io/en/latest/docs/operators/bitwise_XOR.html

Upvotes: 1

Related Questions