की एक पंक्ति से स्टंप किया गया है, मैं बेकारली के माध्यम से अनधिकृत रूप से एक पायथन कोर्स CS61A कर रहा हूं, और मैं पूरी तरह से एक सरल असाइनमेंट द्वारा फंस गया हूं जिसके लिए मुझे प्रदान किए गए टेम्पलेट के अंत में केवल एक अभिव्यक्ति प्रदान करने की आवश्यकता है। यहां समस्या कोड है:पायथन
# HW 4 Q5. (fall 2012)
def square(x):
return x*x
def compose1(f, g):
"""Return a function of x that computes f(g(x))."""
return lambda x: f(g(x))
from functools import reduce
def repeated(f, n):
"""Return the function that computes the nth application of f, for n>=1.
f -- a function that takes one argument
n -- a positive integer
>>> repeated(square, 2)(5)
625
>>> repeated(square, 4)(5)
152587890625
"""
assert type(n) == int and n > 0, "Bad n"
return reduce(compose1, "*** YOUR CODE HERE ***")
repeated(square, 2)(5) # Sample run
मैंने इस काम को करने के लिए सबकुछ करने की कोशिश की है। ऐसा लगता है कि इस रिटर्न एसएमटी को यह करना चाहिए:
return reduce(compose1, range(n))
लेकिन मैं भी करीब नहीं हूं। कंपोज़ 1 में दो तर्क (एफ, जी) लगते हैं और इन्हें दोनों कार्य करना चाहिए। लेकिन जब रिटर्न स्टेटमेंट 'compose1' कहता है, 'compose1' 'g' के लिए 'f' और 'n' के लिए '0' का उपयोग करता है। लेकिन 'एफ' और 'जी' नामक फ़ंक्शन होना चाहिए - 'वर्ग'
मुझे क्या याद आ रही है।
यहां मेरा संकेत है: आप "f'" के 'nth' अनुप्रयोग की गणना "करने का प्रयास कर रहे हैं - जिसका अर्थ है कि गायब कोड में (किसी भी तरह) दोनों' f' और' n' शामिल होना चाहिए। आपका सुझाया गया रिटर्न स्टेटमेंट 'एफ' के साथ कुछ भी नहीं करता है। इस बारे में सोचें कि आप 'n' के लिए' f' कैसे चलाएंगे। –