私の指示は以下の通りです:偽のテストに失敗しました。瑕疵が見つからない
xとyが整数のときは、zの値に興味があります。 xとyの最小値と最大値を指定するパラメータを取る関数poly2max(a, b, c d)
を書く。これらの範囲から選択された任意のxとyについて、zが取る最大値を返します。たとえば、poly2max(0,5,3,7)
を評価すると、3から7までのyの値(3と7の両方を含む)を使用して、この多項式関数の最大値を見つけるためにxの値0から5(0と5の両方を含む)を検索します。
私のコードはすべての公開テストとほぼすべての隠しテストに合格していますが、1つでは、欠陥は見つかりません。ここで
は私のコードです:
def poly2max (a, b, c, d):
results = []
for x in range(a, b):
for y in range (c, d):
z = (-x**4 + 3*x**2 - y**4 + 5*y**2)
results.append(z)
if a == b:
if c == d:
x = a
y = c
z = (-x**4 + 3*x**2 - y**4 + 5*y**2)
return z
if (a, b, c, d) == (0, 0, 0, 0):
return 0
if a == b:
for y in range (c, d):
x = a
z = (-x**4 + 3*x**2 - y**4 + 5*y**2)
results.append(z)
return max(results)
if c == d:
for x in range(a, b):
y = c
z = (-x**4 + 3*x**2 - y**4 + 5*y**2)
results.append(z)
return max(results)
else:
return max(results)
'range(a、b)'はaからbまでの間に入ります。根本原因を修正するのではなく、この問題を回避するためのテストに合格するための特別なケースがたくさんあるようです(問題には包括的な範囲が必要です)。 –