Tôi đang gặp sự cố khi hiểu vấn đề về ba lô khi có nhiều hơn 1 thuộc tính. Khi có 1 thuộc tính,Thuật toán Knapsack với 2 thuộc tính. Làm thế nào để thực hiện điều đó trong một mảng 3D?
Tôi phải viết chương trình sử dụng thuật toán ba lô với 2 thuộc tính. Sư phụ nói với chúng tôi, Nó phải được thực hiện trong một mảng 3D. Việc triển khai sai sẽ dẫn đến thời gian xử lý O (2^n). Tôi không thể tưởng tượng như thế nào mảng như vậy sẽ như thế nào.
Hãy nói rằng đây là đầu vào của tôi:
4 3 4 // number of records below, 1st property of backpack, 2nd property of backpack
1 1 1 // 1st property, 2nd property, cost
1 2 2 // 1st property, 2nd property, cost
2 3 3 // 1st property, 2nd property, cost
3 4 5 // 1st property, 2nd property, cost
Và đầu ra sẽ trông như thế:
4 // the cheapest sum of costs of 2 records
1 3 // numbers of these 2 records
Lời giải thích của đầu ra: 2 bộ hồ sơ phù hợp của thành dòng 1'st đầu vào :
(1) - bản ghi số 1 và số bản ghi 3
1 1 1
+ 2 3 3
-------
3 4 4
(2) - con số kỷ lục 4
3 4 5
Bởi vì bộ 1 của hồ sơ là rẻ nhất (4 < 5), chúng tôi đã chọn nó. Không chỉ tôi sẽ phải tìm hiểu xem liệu bộ hồ sơ đó có tồn tại hay không, tôi cũng sẽ phải tìm các hồ sơ tôi đã tổng kết.
Nhưng hiện tại, tôi chỉ cần hiểu, mảng 3D sẽ trông như thế nào. Có thể một số bạn giúp tôi với điều đó và hiển thị, từng lớp, giống như trong hình ảnh của tôi, làm thế nào sẽ như thế này? Cảm ơn.
Câu hỏi của bạn rất mơ hồ. Ý bạn là gì "trông giống như"? Bạn có nghĩa là một đại diện trực quan? Bạn có nghĩa là mã mô hình một mảng 3D? –
Xin lỗi. Tôi đề cập đến hình ảnh đại diện. Tôi sẽ tự mình thực hiện ngay khi tôi hiểu nó hoạt động ra sao. – Paulina
Vui lòng đăng một số mã cho sự cố dễ dàng hơn (với 1 thuộc tính). Ngoài ra, những con số bên trong mảng trong bức tranh đầu tiên đại diện cho những gì? – anatolyg