Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
Java 中间带位置的动态规划_Java_Algorithm_Dynamic - Fatal编程技术网

Java 中间带位置的动态规划

Java 中间带位置的动态规划,java,algorithm,dynamic,Java,Algorithm,Dynamic,我被困在这个问题上,不知道是否有人可以帮助我: 在x轴上有n个房屋{x_1,x_2,…x_n},我需要找到x轴上的位置,它给出房屋和位置之间的最小距离和 这当然是琐碎的,但我也需要能够按时完成,而且我还停留在动态算法上 编辑:显然,它不需要是DP算法,正如我所说的,这使它变得很简单,很抱歉造成了混乱,也感谢您的回答。解决这个问题相当于找到{xi}的中值 有一些著名的线性时间算法用于求中值。例如,请看。我对中值搜索相当了解,对动态规划也相当了解,但我不知道有任何中值搜索算法可以合理地解释为DP 如

我被困在这个问题上,不知道是否有人可以帮助我: 在x轴上有n个房屋{x_1,x_2,…x_n},我需要找到x轴上的位置,它给出房屋和位置之间的最小距离和

这当然是琐碎的,但我也需要能够按时完成,而且我还停留在动态算法上


编辑:显然,它不需要是DP算法,正如我所说的,这使它变得很简单,很抱歉造成了混乱,也感谢您的回答。

解决这个问题相当于找到{xi}的中值


有一些著名的线性时间算法用于求中值。例如,请看。

我对中值搜索相当了解,对动态规划也相当了解,但我不知道有任何中值搜索算法可以合理地解释为DP

如果你对x进行了排序,但你不知道中位数是答案,我可以把计算给定指数左右的部分和看作DP-ish子问题。然后,最优解使左右部分和之和最小化


但当然,我非常不喜欢用Y来解X的问题,特别是当Y不适合的时候。解决X,你可能想考虑使用Y,是一个更好的形式的问题。< / P>我不认为你的问题是有意义的…如果你在房子之间的任何地方,把你与其他房子的距离加起来,那么不管你在哪里,这个数字都是一样的…@Randy:那不是真的。考虑{1,3,5}。根据你的论点,2可以解决问题,但不是3更好。是的-谢谢这真的是一个中位数计算问题。是的,我知道中位数是答案,而不是一个可能的答案,但我相信我需要一个动态算法来解决它,以获得学分,“这就是我空白的地方。@GordonSimpson:你可能想试着建立一个简单的方程,看看它是否有效。”。如果没有,就把它贴在这里。你知道,当人们第一次提出问题时,表现出他们自己的尝试,我们就喜欢这样。中位数真的是答案吗?我本以为平均数就是答案。考虑{1,2,9}。距离中间带的距离之和为1-2+2-2+9-2=6。距离平均值的距离之和为1-4+2-4+9-4=0。根据定义,它总是等于零。也许我严重误解了这个问题。@emory:我认为误解是,由于距离没有符号,所以需要取绝对值:| 1-4 |+| 2-4 |+| 9-4 |=10。另一方面| 1-2 |+| 2-2 |+| 9-2 |=8。问题并没有明确地说使用DP解决,但它强烈地暗示了这就是他们想要解决的问题。我可能会用另一种方式。谢谢你重申我的想法。