DAA 2
#Write a program to solve a fractional Knapsack problem using a greedy method.
n = int(input("Enter number of items: "))
values = []
weights = []
for i in range(n):
v = float(input(f"Value {i+1}: "))
w = float(input(f"Weight {i+1}: "))
values.append(v)
weights.append(w)
cap = float(input("Enter capacity: "))
items = []
for i in range(n):
items.append((values[i], weights[i], values[i]/weights[i]))
items.sort(key=lambda x: x[2], reverse=True)
val = 0
for v, w, r in items:
if cap >= w:
val += v
cap -= w
else:
val += v * (cap / w)
break
print("Maximum value =", val)
Comments
Post a Comment