我们有一个递归公式的算法,对于一个渐近O((n^2)* Vmax )的背包问题,其中n-项数,Vmax- max的值: Ai,x-达到值>= x所需的总大小,而只使用前i个项。Ai,x= min{Ai-1,x,Ai-1x-vi]+wi},其中Ai-1x-vi] =0若vi>=x;Base情况: A0,x=0若x == 0且+ inf。否则;
对于a +inf。在java中,我使用Integer.Max_VALUE。当算法运行时,有一个调用: A0,1,A0,2...和矩阵填充的负数(整数溢出)如何才能在е中表示无穷大和无穷大加数字?
发布于 2016-03-14 01:04:07
如果你没有将无穷大存储在任何地方,并且只用于比较,你可以使用双无穷大,它大于int和long max值。
Double.POSITIVE_INFINITY
如果你正在存储数字,但仍然溢出,你应该将数字存储在数组中,然后与整数最大值进行比较,这样你就会知道数字大于最大值而不会溢出。这样做的缺点是,执行速度较慢,内存消耗较大。
发布于 2016-10-17 02:56:03
如果您知道输入的最大值,请尝试使用略大于该值的值。这应该能起到作用。
https://stackoverflow.com/questions/35973000
复制相似问题