简体   繁体   中英

Finding a sum of series in Python 2.7.x

Here's the equation

x + x^2/2 + x^3/3 +.... x^n/n

How will I find the sum of this series? x is a constant term to be entered by user and n which is power is also based on user!

I made this program but it's not working properly.. Have a look -

n=input("Enter power ")
x=input("Enter value of x")
i=0
while i<n:
    c=n-1
    res=(x**(n-c))/(n-(c))
    print res
    i=i+1

So how do we make it? Thanks a ton for your help!

Update : The answers helped me and now the program is working as it should! This was my first time using Stackoverflow! Thanks to everyone for this.

Something like this for your loop? Tried to keep it simple.

n = input("Enter power ")
x = float(input("Enter value of x"))

ans = 0
for i in range(1, n+1):
    ans += x**i/i

print(ans)

See zev's answer regarding floats

You're not adding the terms together.

Also , you need to be careful that you use float division when x is an integer. See this thread .

Here's a working implementation:

n = input("Enter power: ")
x = input("Enter value of x: ")
result = 0
for i in range(1, n+1):
    result += (x**i) / float(i)
print result

Issue with your program is that your are not adding the sum. See: res=(x**(nc))/(n-(c)) . Instead do:

res += (x**(n-c))/(n-(c))

You may also achieve it by using in-built sum , map and lambda functions as:

y = 5  # or any of your number
sum(map(lambda x: (y**x)/float(x), xrange(1, y)))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM