首页 > 试题广场 >

DBSCAN聚类

[编程题]DBSCAN聚类
  • 热度指数:186 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
  • 任务: 用DBSCAN在二维或三维实数坐标上做聚类,输出“簇的数量”和“噪声点数量”。
  • 定义: 距离为欧氏距离;某点的邻域半径为eps;若该点邻域内样本数(含自身)≥ min_samples,则为核心点;从未访问核心点出发,按邻域可达关系扩展一个簇;不被任何簇吸收的点视为噪声

输入描述:
  • 第一行: eps min_samples x
  • 接下来x行: 每行2个或3个实数(同一测试仅一种维度)


输出描述:
  • 一行: 簇数 噪声点数
示例1

输入

1.5 2 6
0 0
0.5 0
0 0.5
10 10
10.5 10
10 10.5

输出

2 0

说明

前3个点彼此间距都≤1.5,形成一簇;后3个点同理形成另一簇;无噪声。

备注:
  • 约定: 邻域判定使用距离≤eps;核心点计数包含自身。
头像 Xin001
发表于 2025-10-15 15:42:59
import sys import math def cal_dis(point1,point2): dim = len(point1) sum_up = 0 for i in range(dim): sum_up += (point1[i]-point2[ 展开全文
头像 Silencer76
发表于 2025-10-11 17:52:03
题目链接 DBSCAN聚类 题目描述 本题要求在二维或三维实数坐标系中,使用 DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 算法进行聚类分析。 核心定义: 邻域半径 (eps): 定义了“邻近”的范围。 最 展开全文