我知道有一些类似的问题,但他们都希望/或者使用numpy来回答问题。
我想找到一个字符串的最大值和最小值,例如(“Sin(x ** 2)”)在区间内:x [0,10]。
我老师给了我这个暗示; 特别地,我们尝试从1到10的1001个不同的值,并使用eval和值来实现评估函数 x {(i / 100,i [0,1000]}。 这可以通过使用for循环实现,其中i在范围(0,1001)中并使用增量x = i / 100.0。
注意:我不能使用numpy。
答案 0 :(得分:0)
import math
def compute_min_and_max(expression):
min_value, max_value = float("inf"), float("-inf")
for x in range(1001):
res = eval(expression, None, {"sin": math.sin, "x": x/100.0})
if min_value > res: min_value = res
if max_value < res: max_value = res
return(min_value, max_value)
print(compute_min_and_max("sin(x ** 2)"))
<强>输出强>
(-0.9999939135141118, 0.9999999062300194)