
Phòng B: chứa từ 7 đến 9 người, 2 giường chuyên dụng, yên tĩnh, có giường tầng,
chi phí vệ sinh: 1.5 triệu đồng/ngày.
Phòng C: chứa ít hơn 7 người, có 2 giường chuyên dụng, yên tĩnh, có giường
tầng, chi phí vệ sinh là 2.5 triệu đồng/ngày.
Phòng D: chứa ít hơn 13 người, có 3 giường chuyên dụng, có giường tầng, chi phí
vệ sinh là 3 triệu đồng/ngày.
Hiện tại, trung tâm đang tiếp nhận 03 nhóm người cần cách ly xã hội được chuyển đến
với các yêu cầu được thu thập như sau:
Nhóm 1: 6 người, cần 2 giường chuyên dụng, không yêu cầu yên tĩnh, có thể sử
dụng giường tầng, yêu cầu cách ly trong 3 ngày.
Nhóm 2: 10 người, không thể sử dụng giường tầng, không cần yên tĩnh, chỉ yêu
cầu cách ly trong 4 ngày.
Nhóm 3: 8 người, cần yên tĩnh, cách ly trong 8 ngày.
Vấn đề cơ bản nhất của một Cử nhân/Kỹ sư Công nghệ Thông tin:
- Hãy cho biết có bao nhiêu cách sắp xếp các nhóm vào các phòng?
- Cho biết cách xếp nào tốt nhất?
- Câu hỏi suy nghĩ thêm: Cho nhận xét/ý kiến trong trường hợp số lượng phòng và
số lượng nhóm tăng? Nghĩa là hãy nêu quan điểm để giải quyết bài toán trên.
[Sinh viên hãy giải và gửi đáp án đến GV trong thời gian tối đa 5 phút]
Trong Python, thư viện itertools trong Python có hỗ trợ nhiều hàm xử lý các yêu cầu của các bài
toán tổ hợp.
2. Sử dụng thư viện itertools với các phép toán hỗ trợ xử lý về tổ hợp
Lưu ý: để sử dụng, ta phải import thư viện itertools bằng lệnh, cụ thể là: >>> import itertools
Giới thiệu một số lệnh của thư viện itertools:
Tích tổng tích tụ (accumulate): Cho một tập A = {1,2,3,4,5,6,…}. Tổng tích tụ thứ là tổng
từ phần tử đầu tiên đến phần tử thứ . Ví dụ:
>>> for i in itertools.accumulate([1,2,3,4,5,6,7,8,9,10]):
print(i)
……………………………………… Sinh viên giải thích kết quả sau đó điền kết quả vào