2 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
此刻,您arg2
每次都增加1 并重試,這太慢了。那么,為什么不嘗試在每一步都增加更多呢?例如。每次增加+5或+10000,然后一旦你知道例如。它在 100-200 的范圍內(nèi),您可以使用二進(jìn)制搜索來(lái)搜索該范圍。
事實(shí)上,存在一個(gè)已知的模式,稱為https://en.m.wikipedia.org/wiki/Exponential_search,但根據(jù)您的需求和您的值將有多大,它可能不是必需的。

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
我用 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)
添加回答
舉報(bào)