2 回答

TA贡献1865条经验 获得超7个赞
此刻,您arg2
每次都增加1 并重试,这太慢了。那么,为什么不尝试在每一步都增加更多呢?例如。每次增加+5或+10000,然后一旦你知道例如。它在 100-200 的范围内,您可以使用二进制搜索来搜索该范围。
事实上,存在一个已知的模式,称为https://en.m.wikipedia.org/wiki/Exponential_search,但根据您的需求和您的值将有多大,它可能不是必需的。

TA贡献1815条经验 获得超10个赞
我用 scipy.optimize.fsolve 决定了它
from scipy import optimize
arg1 = some_value1
arg2 = some_value2
arg3 = some_value3
#find waiting time
def wait_time(agr1, arg2, arg3):
wait_prob = another_function(agr1, arg2, arg3)
x = wait_prob / arg2/(arg3*(40))
return x
target_waiting_time = 100
def func(x):
return wait_time(agr1, x, arg3) - target_waiting_time
optimal_value = optimize.fsolve(func, x0 = arg2)
添加回答
举报