Knapsack Problem
Coddy'nin Rekürsiyon Problemleri - Rekürsif Düşüncede Ustalaşın kursunda ders 7 / 15.
Görev
OrtaSırt çantası problemi (knapsack problem) ünlü bir problemdir.
Bu problemde, taşıyabileceği önceden belirlenmiş bir ağırlığı olan bir sırt çantanız ve her birinin bir ağırlığı ve bir değeri olan eşyalarınız vardır.
Göreviniz, sırt çantası ağırlık sınırları dahilinde mümkün olan en fazla değeri almaktır.
Örneğin,
values - [20, 5, 40, 10, 15]
weights - [1, 2, 8, 3, 7]
Sırt çantasının ağırlığı - 10
Çözüm, 1 ve 8 ağırlığındaki ve 20 ve 40 değerindeki eşyaları almaktır.
Maksimum değer 60'tır ve toplam ağırlık 9'dur (bu değer 10'dan küçük veya ona eşittir, yani geçerli bir ağırlıktır).
Bir tam sayı W ve iki tam sayı dizisi values ve weights alan ve girdi değerlerini kullanarak sırt çantası problemi için çözümü (sırt çantasının alabileceği maksimum değer) döndüren knapsack adında bir fonksiyon yazın.
Kendin dene
#include <stdio.h>
#include <stdlib.h>
int knapsack(int W, int* values, int values_size, int* weights, int weights_size) {
// Kodu buraya yazın
return 0;
}
Rekürsiyon Problemleri - Rekürsif Düşüncede Ustalaşın bölümündeki tüm dersler
2Medium Challenges
Knapsack ProblemNumber of SquaresInterleaving ResultSum CombinationsFind TripletSplit Array