Answered step by step
Verified Expert Solution
Question
1 Approved Answer
This is a programming problem. Create a new Python file named p2.py and write the solution in it. When done, upload the file by clicking
This is a programming problem. Create a new Python file named p2.py and write the solution in it. When done, upload the file by clicking on the button below. Make sure your code works, follows strictly all requirements, and complies with the Python coding style taught in class. Do not change the signature (name, parameter list) of any function, if given. Pay attention to details. a) Write a generator function called gen powers(x, n) that generates the first n powers of x, beginning with 1 (x, by definition). So, gen powers(x, 10) should generate this sequence: 1, x,x2, x3,..., x. To get credit. your generator should NOT use the math.pow() function, operator **, or any other function, and should NOT compute xi from scratch every time it needs to output the next value. Keep the previous output value x between calls, to compute xit1. b) Write a Python expression using sum(), the gen_powers(2, ...) generator call (with parameter x==2), and a generator expression that computes this sum: y = 1 + 2 + y +...+2, where n is a local positive int variable. Remember that the generator outputs the first n numbers from the powers sequence. To get credit you must use gen_powers(2, ...) (param x==2), as indicated, and not just write sum(gen_powers(1/2, ...). After the Python code for b), write a comment with the value of the sum for n=30 terms. c) Use the gen_powers(2, ...) generator call (with parameter x==2), the functools.reduce(), map() functions, and lambda expressions to compute the sum from part b). To get credit do NOT use the sum() function. Assume n is a positive local int variable. Hint: first map the sequence of 2 to sequence of 1/2'. This is a programming problem. Create a new Python file named p2.py and write the solution in it. When done, upload the file by clicking on the button below. Make sure your code works, follows strictly all requirements, and complies with the Python coding style taught in class. Do not change the signature (name, parameter list) of any function, if given. Pay attention to details. a) Write a generator function called gen powers(x, n) that generates the first n powers of x, beginning with 1 (x, by definition). So, gen powers(x, 10) should generate this sequence: 1, x,x2, x3,..., x. To get credit. your generator should NOT use the math.pow() function, operator **, or any other function, and should NOT compute xi from scratch every time it needs to output the next value. Keep the previous output value x between calls, to compute xit1. b) Write a Python expression using sum(), the gen_powers(2, ...) generator call (with parameter x==2), and a generator expression that computes this sum: y = 1 + 2 + y +...+2, where n is a local positive int variable. Remember that the generator outputs the first n numbers from the powers sequence. To get credit you must use gen_powers(2, ...) (param x==2), as indicated, and not just write sum(gen_powers(1/2, ...). After the Python code for b), write a comment with the value of the sum for n=30 terms. c) Use the gen_powers(2, ...) generator call (with parameter x==2), the functools.reduce(), map() functions, and lambda expressions to compute the sum from part b). To get credit do NOT use the sum() function. Assume n is a positive local int variable. Hint: first map the sequence of 2 to sequence of 1/2
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started