Hãy cài đặt thuật toán K-means hoàn chỉnh để phân cụm n khách hàng (d chiều) với k tâm cụm khởi tạo cho trước (không dùng ngẫu nhiên). Lặp đúng T vòng, mỗi vòng gồm hai bước theo thứ tự:
Sau T vòng, in nhãn cụm cuối cùng của từng điểm (nhãn thu được ở bước gán của vòng cuối) và tọa độ k tâm cuối cùng.
Dòng đầu: bốn số nguyên n d k T. n dòng tiếp theo: mỗi dòng d số thực (một điểm). k dòng cuối: tâm khởi tạo (mỗi dòng d số thực).
1 ≤ n ≤ 500; 1 ≤ d ≤ 10; 1 ≤ k ≤ 10; 1 ≤ T ≤ 100; |giá trị| ≤ 1000.
Dòng 1: n số nguyên — nhãn cụm cuối của từng điểm, cách nhau dấu cách. Tiếp theo k dòng: tọa độ tâm cuối của từng cụm, mỗi số làm tròn 2 chữ số thập phân ({:.2f}). Lưu ý: nếu kết quả bằng 0 hãy in 0.00 (tránh in -0.00, có thể cộng thêm 0.0 trước khi in).
Ví dụ:
Đầu vào:
6 1 2 2
1
2
3
10
11
12
0
5
Đầu ra:
0 0 0 1 1 1
2.00
11.00
Giải thích:
Đang tải editor...