Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Data Science] K-means trọn vẹn T vòng lặp

    Hãy cài đặt thuật toán K-means hoàn chỉnh để phân cụm nnn khách hàng (ddd chiều) với kkk tâm cụm khởi tạo cho trước (không dùng ngẫu nhiên). Lặp đúng TTT vòng, mỗi vòng gồm hai bước theo thứ tự:

    1. Gán cụm: mỗi điểm vào cụm có tâm gần nhất theo khoảng cách Euclid; nếu hòa, chọn cụm chỉ số nhỏ nhất.
    2. Cập nhật tâm: tâm cụm jjj = trung bình cộng các điểm thuộc cụm jjj; cụm rỗng giữ nguyên tâm hiện tại.

    Sau TTT 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 độ kkk tâm cuối cùng.

    • Định dạng đầu vào:

      Dòng đầu: bốn số nguyên nnn ddd kkk TTT. nnn dòng tiếp theo: mỗi dòng ddd số thực (một điểm). kkk dòng cuối: tâm khởi tạo (mỗi dòng ddd số thực).

    • Ràng buộc đầu vào:

      1 ≤ n ≤ 500; 1 ≤ d ≤ 10; 1 ≤ k ≤ 10; 1 ≤ T ≤ 100; |giá trị| ≤ 1000.

    • Định dạng đầu ra:

      Dòng 1: nnn 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 kkk 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:

    Vòng 1: gán (1,2 → cụm 0; 3,10,11,12 → cụm 1 vì 3 gần 5 hơn 0), cập nhật tâm thành 1.5 và 9. Vòng 2: gán (1,2,3 → 0; 10,11,12 → 1), tâm thành 2 và 11. Kết quả: nhãn 0 0 0 1 1 1, tâm 2.00 và 11.00

    Đang tải editor...