で道のタプルの仕事についての質問、私はMIT OCWのはじめからコンピュータサイエンスとプログラミングにこの問題をしていた。カップルだから、Pythonの
Problem #2
Implement the compute_deriv function. This function computes the derivative
of a polynomial function. It takes in a tuple of numbers poly and returns
the derivative, which is also a polynomial represented by a tuple.
def compute_deriv(poly):
"""
Computes and returns the derivative of a polynomial function. If the
derivative is 0, returns (0.0,).
Example:
>>> poly = (-13.39, 0.0, 17.5, 3.0, 1.0) # x4 + 3.0x3 + 17.5x2 - 13.39
>>> print compute_deriv(poly) # 4.0x3 + 9.0x2 + 35.0x
(0.0, 35.0, 9.0, 4.0)
poly: tuple of numbers, length > 0
returns: tuple of numbers
"""
# TO DO ...
そして、これは私のプログラム(それが動作する)である:
def compute_deriv(poly):
derivatives=()
for i in poly:
if list(poly).index(i)==0: #my version is 2.5.4, so I cannot use
continue #tuple.index(i) and since I didn't
else: #find another way, I converted the
deriv=i*list(poly).index(i) #tuple to a list
derivatives=derivatives+(deriv,)
return derivatives
polyx=(-13.39, 0.0, 17.5, 3.0, 1.0)
print compute_deriv(polyx)
polyxx=(1.3, 7.0, 4.0, 2.5, 0.0, -8.0)
print compute_deriv(polyxx)
最初の事は、私が代わりにその中にそれを書くの入力に多項式を私に依頼するプログラムのために望んでいたということです。
...
polyx=tuple(raw_input("Enter your polynomial tuple here:"))
print compute_deriv(polyx)
でも動作しませんでした:
Enter your tuple here:-13.39, 0.0, 17.5, 3.0, 1.0
('1', '33', '...', '33', '99999', ',,,,,,', ' ', '00000000', '...',
'00000000', ',,,,,,', ' ', '1', '77777777777777', '...',
'5555555555555555', ',,,,,,', ' ', '33', '...', '00000000', ',,,,,,',
' ', '1', '...', '00000000')
なぜですか? もう1つの問題は、メンバがそれぞれ(1.3,7.0,4.0,2.5,0.0、-8.0)の場合、2番目のタプル(-8x^5 + 2.5x^3 + 4x^2 + 7x + 1.3)最初のメンバーが0.0(-8x^5 + 2.5x^3 + 4x^2 + 7xのように)の場合、 - (7.0、8.0、7.5、0.0、-40.0) 、8.0,7.5、-40.0)。 2番目の0.0は省略されています。それは、それが4であるときに-40.0の力が3であることを意味するので、問題です。再び、なぜですか?
ありがとうございました!
バージョンを使用していますか? –
@JayParikh:OPは2.5.4を使用しています。それについてのコードには注意深いコメントがあります。 – BoarGules