pythonの再帰関数についての問題

前提

pythonの問題です。大学の授業で「#コードを1行埋めよ」という課題が出されたのですが、長考しても解けませんでした。課題なのでヒントが欲しいです。
自分は初学者なので未熟ですが教えてくださると助かります。
【次の関数solve(f, m, M)を完成させ、x3+x2−1=0の解を求めよ。

関数f(x)に対して、solve(f, m, M)はf(x)=0の解m<x<Mを返す。
c=m+M2

とするとき、

f(c)>0ならば、解はmとcの間に存在し、
f(c)<0ならば、解はcとMの間に存在する
事実を利用し、分割統治法(関数の再帰呼び出し)を利用する。】

コード
def solve(f, m, M): # f(x)=0の解 m < x < M を求める
c = (m + M)/2
if M - m < 0.00001:
return (m + M)/2
elif f(c) == 0:
return c
elif f(c) > 0:
return # コードを1行埋めよ
elif f(c) < 0:
return # コードを1行埋めよ

x = solve(f, 0, 1)
print(x)
print(f(x))
コード終わり

・「#コードを1行埋めよ」の2か所を解くためのヒントが欲しいです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント