def f(x):
return abs(42-x)**2
def improve(x):
newX = x + 0.1
return newX, f(newX)
def optimize(f, goal):
x = 0
err = f(x)
while err >= goal:
x, err = improve(x)
return x, err
print(optimize(f, 0.5))
ZGVmIGYoeCk6CiAgICByZXR1cm4gYWJzKDQyLXgpKioyCgpkZWYgaW1wcm92ZSh4KToKICAgIG5ld1ggPSB4ICsgMC4xCiAgICByZXR1cm4gbmV3WCwgZihuZXdYKQoKZGVmIG9wdGltaXplKGYsIGdvYWwpOgogICAgeCA9IDAKICAgIGVyciA9IGYoeCkKICAgIHdoaWxlIGVyciA+PSBnb2FsOgogICAgICAgIHgsIGVyciA9IGltcHJvdmUoeCkKICAgIHJldHVybiB4LCBlcnIKCnByaW50KG9wdGltaXplKGYsIDAuNSkp