diff --git a/out/production/aroTP2/App.class b/out/production/aroTP2/App.class index 8d3c8e862e7d1d8ac1daac52964bbb7ec3329713..199c96065198da6f5c1ee0f956da5d49a812a0b5 100644 Binary files a/out/production/aroTP2/App.class and b/out/production/aroTP2/App.class differ diff --git a/out/production/aroTP2/Loot.class b/out/production/aroTP2/Loot.class index 4ffba3f58d9594f16f64fe6527d3748ef90eb0fc..5980ee7339fd55f258d0b9244ea844ecc3f583c3 100644 Binary files a/out/production/aroTP2/Loot.class and b/out/production/aroTP2/Loot.class differ diff --git a/src/App.java b/src/App.java index a70ffd2bd6aee3fa0e1b931a9341f905b1d113ed..81b84333570a1a969f1b832f7d3530c6aa32853b 100644 --- a/src/App.java +++ b/src/App.java @@ -5,6 +5,7 @@ public class App { Backpack backpack= new InstanceReader().read("src/sacTest"); backpack.sortByRatio(); backpack.solutionFractionnelle(); - System.out.println("solution fractionnelle :" + backpack.getSfValuee()); + System.out.println("sac :" + backpack); + System.out.println("solution fractionnelle :" + backpack.getSfValuee()); } } diff --git a/src/Backpack.java b/src/Backpack.java index b8552f0f0bf5768429ce28456da51acb4081337e..aadadba965ddeba4b4bff8a92b11b45e84f01139 100644 --- a/src/Backpack.java +++ b/src/Backpack.java @@ -27,13 +27,21 @@ public class Backpack { this.sortByRatio(); for(Loot loot : loots){ - if(loot.getWeight() > this.capacity){ - sfValuee += (loot.getValue() * loot.getWeight()) / (capacity - sfWeight); + if(loot.getWeight() > (capacity - sfWeight)){ + System.out.println("value :"+loot.getValue()); + System.out.println("value1 :"+loot.getWeight()); + System.out.println("value2 :"+(capacity - sfWeight)); + System.out.println("value1 :"+sfValuee); + sfValuee += (loot.getValue() * (capacity - sfWeight)) / loot.getWeight(); sfWeight += capacity - sfWeight; + System.out.println("frac :"+sfValuee); + System.out.println("frac :"+sfWeight); } - else { - sfValuee += loot.getWeight(); + else if (sfWeight < capacity){ + sfValuee += loot.getValue(); sfWeight += loot.getWeight(); + System.out.println("no frac :"+sfValuee); + System.out.println("no frac :"+sfWeight); } } } diff --git a/src/Loot.java b/src/Loot.java index e2a85e00913b0890cf5461e66d69589ac99a4cce..d7dc0320d837cc34d2d2fbda4f41e65e6c8f3e3c 100644 --- a/src/Loot.java +++ b/src/Loot.java @@ -5,7 +5,7 @@ public class Loot { public Loot(int weight, int value) { this.weight = weight; this.value = value; - this.ratio = (float) weight/value; + this.ratio = (float) value/weight; } public String toString(){