给出 m 个终端的四维数值特征,需将它们用 KMeans 聚成 k 类,并输出各簇的样本数,从小到大排序后以空格分隔打印。实现规则如下: 初始质心:直接取数据中的前 k 个样本。 距离:使用四维欧氏距离的平方(少一次开方,比较大小结果不变)。 更新:每轮按最近质心分配样本,再用簇内四维特征的平均值更新该簇质心。 收敛判定:若所有质心的新旧位置变化量(平方距离)最大值小于 1e-8,或已达到最多迭代次数 n,则停止。 空簇处理:若某簇本轮没有样本,保持该簇质心不变,避免除零错误。
输入描述:
第一行:k m n接下来 m 行:每行 4 个浮点数,表示一个终端的四维特征


输出描述:
一行:k 个整数(各簇样本数),升序排列,用空格分隔
示例1

输入

2 4 100
0.00 0.00 0.00 0.00
10.00 10.00 10.00 10.00
0.20 0.00 0.00 0.00
9.80 10.00 10.00 10.00

输出

2 2

说明

前两行即初始两个质心,后两点分别更接近对应质心;每簇各 2 个样本,升序输出为 2 2。
加载中...