Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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_Knapsack Problem - Fatal编程技术网

Java 在背包任务中解释无限

Java 在背包任务中解释无限,java,algorithm,knapsack-problem,Java,Algorithm,Knapsack Problem,对于具有渐近O((n^2)*Vmax)的背包问题,我们有一个带递归公式的算法,其中n-项目计数,Vmax-最大值: 仅使用前i项时,实现值>=x所需的[i,x]-最小总大小。 A[i,x]=min{A[i-1,x],A[i-1][x-v[i]]+w[i]},其中如果v[i]>=x,A[i-1][x-v[i]=0;基本情况:如果x==0,则A[0,x]=0,否则加上inf 在java中,对于+inf,我使用Integer.Max\u值。当算法运行时,有一个调用:a[0,1],a[0,2]。。。和矩

对于具有渐近O((n^2)*Vmax)的背包问题,我们有一个带递归公式的算法,其中n-项目计数,Vmax-最大值: 仅使用前i项时,实现值>=x所需的[i,x]-最小总大小。 A[i,x]=min{A[i-1,x],A[i-1][x-v[i]]+w[i]},其中如果v[i]>=x,A[i-1][x-v[i]=0;基本情况:如果x==0,则A[0,x]=0,否则加上inf

在java中,对于+inf,我使用Integer.Max\u值。当算法运行时,有一个调用:a[0,1],a[0,2]。。。和矩阵填充负数(整数溢出)
如何解释无穷大和无穷加数字?

如果你不在任何地方存储无穷大,只是为了比较,你可以使用双无穷大,它大于int和long max值

Double.POSITIVE_INFINITY

如果正在存储数字,但仍然溢出,则应在数组中存储尽可能长的数字,然后与整数最大值进行比较,这样您就可以知道数字大于最大值而不会溢出。缺点是执行速度较慢,内存消耗较大。

如果您知道输入的最大值,请尝试使用略大于该值的值。这应该能奏效