Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 找到一对比最小化一个具有两个参数的函数的值_Algorithm_Search - Fatal编程技术网

Algorithm 找到一对比最小化一个具有两个参数的函数的值

Algorithm 找到一对比最小化一个具有两个参数的函数的值,algorithm,search,Algorithm,Search,我有一个函数F(x,y),其中x和y是整数,两个数组a,b各有n个元素。我需要找到两个使F(a[I],b[j])的值最小的数字I,j。有没有比搜索所有n^2个不同组合更好的方法?函数F为不同的参数返回不同的值 编辑:在我的问题中,数组a,b代表两个对立的军队在直线的两点上发射的n个炮弹,从时间=0开始。该函数是一个oracle函数,它返回两个碰撞的确切时间,我需要找到首先碰撞的一对。如果它们没有碰撞,甲骨文将返回它们在没有其他炮弹的情况下碰撞的时间。因为甲骨文总是返回炮弹碰撞的时间,我假设它们是

我有一个函数F(x,y),其中x和y是整数,两个数组a,b各有n个元素。我需要找到两个使F(a[I],b[j])的值最小的数字I,j。有没有比搜索所有n^2个不同组合更好的方法?函数F为不同的参数返回不同的值


编辑:在我的问题中,数组a,b代表两个对立的军队在直线的两点上发射的n个炮弹,从时间=0开始。该函数是一个oracle函数,它返回两个碰撞的确切时间,我需要找到首先碰撞的一对。如果它们没有碰撞,甲骨文将返回它们在没有其他炮弹的情况下碰撞的时间。

因为甲骨文总是返回炮弹碰撞的时间,我假设它们是直接相互射击的。它们都是在时间
t=0时发射的,因此唯一的变量是速度。我们可以在
a
中找到最快的炮弹,只要找到使值
F(a[i],b[c])
最小化的最佳
i
,其中
c
是一个常数,例如
0
,然后我们通过将该
bestI
b
中的所有值进行比较来找到最佳
j
,从而找到解决方案,它最小化了
F(a[bestI],b[j])
。这是O(n)。这样你也可以得到最小值,如果你只需要最好的
i
j
,你可以再次找到最小值
F(a[c],b[j])
,其中
c
又是一个常数。

因为你的预言书总是返回炮弹碰撞的时间,我假设它们是直接相互射击的。它们都是在时间
t=0时发射的,因此唯一的变量是速度。我们可以在
a
中找到最快的炮弹,只要找到使值
F(a[i],b[c])
最小化的最佳
i
,其中
c
是一个常数,例如
0
,然后我们通过将该
bestI
b
中的所有值进行比较来找到最佳
j
,从而找到解决方案,它最小化了
F(a[bestI],b[j])
。这是O(n)。这样你也可以得到最小值,如果你只需要最好的
i
j
你可以再次找到最小值
F(a[c],b[j])
,其中
c
又是一个常数。

1。如果没有关于函数的任何信息,真的很难帮助你,你知道一些关于它的信息吗?2.你对阵列了解多少?它们分类了吗?别的?3.这真的取决于前两个问题的答案,但你可能想看看“遗传算法”@T.G。对不起,没有信息,我编辑了原始的帖子1。如果没有关于函数的任何信息,真的很难帮助你,你知道一些关于它的信息吗?2.你对阵列了解多少?它们分类了吗?别的?3.这真的取决于前两个问题的答案,但你可能想看看“遗传算法”@T.G。很抱歉,缺少信息,我编辑了原始帖子