我有一个功能-wait_time(agr1,arg2,arg3)和此功能的目标-target_waiting_time
如何从此函数中为target_waiting_time =特定值找到arg2的值?
现在我发现它有一个循环,但是太长了。
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
while wait_time < target_wait_time:
arg2 += 1
wait_time = wait_time(agr1, arg2, arg3)
optimal_value = arg2
最佳答案
在一分钟,您要将arg2
递增1,然后每次重试一次,这太慢了。那么,为什么不尝试在每个步骤上增加更多呢?例如。每次+5或+10000,那么一旦您知道例如它的范围是100-200,您可以使用二进制搜索来搜索该范围。
实际上,存在一个称为https://en.m.wikipedia.org/wiki/Exponential_search的已知模式,但是对于您来说,根据您的需要和值的大小,这可能不是必需的。
关于python - 查找给定函数值的参数的最佳值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55474338/