一. 部分背包
1.部分背包思路:
这种背包考虑到了与利润有关系的问题,符合实际但是解决比较复杂, 这种问题 他的每一种物品都可以拆解成为 所需要的任何部分 放入背包 每次优先选择 利润与重量比值最大的,使用贪心算法 来解决这种问题 每次最优以此达到结果最优
2.代码实现及讲解
核心代码 就是求利润与重量比值,然后再进行排序,然后就是放入时的最后一个重量选择
package backpack;
import java.util.Scanner;
import jdk.management.resource.internal.TotalResourceContext;
//与利润有关的 部分背包,(可以把商品拆开装入)
/*
* 问题4:一个商人带着能装入m 千克的背包去收购货物,准备在去城里卖 了获利
* 现在有n中货源 且第i种货物 有 wi千克 可以获利 pi元 ,编写算法所得利润最大
* 思路:采用贪婪算法 局部最优以此达到全局最优
* 引文商品是可以分开任意小部分的 ,每次选择利润比最大的装入背包 获得最高利润
*/
public class ph04 {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
int m,n; //背包容量m ,n种商品
System.out.println("输入背包容量m ,n种商品");
m=scanner.nextInt();
n=scanner.nextInt();
System.out.println(m+" "+