【Python经典题目】闵可夫斯基距问题

article/2025/9/24 15:12:19

题目

定义一个高维空间样本点集类HDPoints,须包含以下数据属性与方法属性:

(a)数据属性self.points:类型为列表,由多个子列表构成,每个子列表表示高维空间中的一个数据点,且数据维度可以任意,并通过初始化构造函数获得。

(b)方法属性centerpoint(self):计算点集的中心点。

(c)方法属性minkowski (self, x, y, p):计算两点x和y之间的闵可夫斯基距离,p为非负整数,用p=0情形表示切比雪夫距离。由此定义的距离称为p-闵氏距离,其数学定义如下:

(d)方法属性farthestpoint(self, p):找出离中心点p-闵氏距离最远的点,返回在self.points中的下标以及最大距离。

(e)方法属性farthest2points(self, p):找出点集self.points中p-闵氏距离最远的两点,返回两点在self.points中的下标及其最大距离。

要求

接下来,实例化类HDPoints,利用random模块,随机产生至少50个高维空间数据点,样本点的维度至少在5以上,且每个分量取值服从区间[0,1]上的均匀分布。同时,随机产生一个0~5之间的一个非负整数,赋值传递给p-闵氏距离函数中的参数p,对HDPoints实例对象的全部自定义方法属性(即centerpoint()、minkowski()、farthestpoint()和farthest2points())进行功能测试。

代码

import numpy as npclass HDPoints(object):def __init__(self,list_HDPoints):self.points=list_HDPointsdef centerpoint(self):# 转化为高维数组,数组要求长度一致m=np.array(self.points)return sum(m) / len(m)def minkowski (self, x, y, p):if (p==0):p=1return sum([abs(x - y) ** p for x, y in zip(x, y)])**(1/p)def farthestpoint(self, p):centerPoint=self.centerpoint()list_instance=[self.minkowski(centerPoint,i,p)for i in self.points]max1=max(list_instance)return list_instance.index(max1),max1def farthest2points(self, p):max=0l1,l2=[],[]for i in self.points:for j in self.points[self.points.index(i)+1::]:if self.minkowski(i,j,p)>max:max=self.minkowski(i,j,p)l1,l2=i,jreturn max,self.points.index(l1),self.points.index(l2)#产生50个高维点
a=np.random.uniform(0,5,(50,5))
m=[]
for i in a:m1=[]for j in i:m1.append(int(j))m.append(m1)
print(m)
HD_Point=HDPoints(m)print("中心点是:",HD_Point.centerpoint())
print("两点之间的闵可夫斯基距离是:",HD_Point.minkowski([3,4,5,6],[2,3,4,5],4))
print("当p=5时,离中心点距离最远的点和下标是:",HD_Point.farthestpoint(5))
print("当p=5时,距离最远的两个点下标和距离是:",HD_Point.farthest2points(5))


http://chatgpt.dhexx.cn/article/UnIf6Aom.shtml

相关文章

欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离

转载自:https://baijiahao.baidu.com/s?id1577090844304882120&wfrspider&forpc 欧氏距离(Euclidean Distance) 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 欧氏距离 二…

数值属性的相异性:闵可夫斯基距离

本文介绍数值属性刻画的对象之间的相异性度量,首先,应该把数据进行规范化,使之落入更小的值域,例[0,1],[0.0,1.0] 1:最流行的距离度量:欧几里得距离 2:曼哈顿距离 3&…

各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...

1. 欧氏距离(Euclidean Distance) 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离: 三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: n维空间点a(x1…

常用的相似度计算方法----欧式距离、曼哈顿距离、马氏距离、余弦、汉明距离、切比雪夫距离、闵可夫斯基距离、马氏距离

在深度学习以及图像搜索中,经常要对特征值进行比对,得到特征的相似度,常见的特征值比对方法有汉明距离、余弦距离、欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、马氏距离等,下面对各种比对方法分别进行介绍。 目录 1汉…

机器学习部分:距离的度量(欧氏距离,曼哈顿距离,夹角余弦距离,切比雪夫距离,汉明距离,闵可夫斯基距离,马氏距离)

目录 距离计算方法 1.欧式距离EuclideanDistance 2. 曼哈顿距离(ManhattanDistance) 3. 夹角余弦 4.切比雪夫距离(Chebyshevdistance) 5. 汉明距离(Hamming Distance) 6. 闵可夫斯基距离(Minkowski Distance) 7. 马氏距离(Mahalanobis Distance)…

【大数据】曼哈顿距离 欧几里得距离 与 闵可夫斯基距离Minkowski Manhattan Euclidean

这里写目录标题 闵可夫斯基距离曼哈顿距离欧几里得距离 e . g . e.g. e.g. 曼哈顿距离与欧几里得距离 三种距离计算算法 闵可夫斯基距离 闵可夫斯基距离(Minkowski Dis) ,是 曼哈顿距离(Manhattan Dis) 与 欧几里得距离(Euclidean Dis) 的一般形式。一般不常直接使…

样本相似性度量(欧几里得距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离)

样本相似性度量(欧几里得距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离) 在分类过程中,常常需要估算不同样本直接的 Similarity Measurement (相似性度量)。 此时常用的方法就是计算两个样本直接…

机器学习聚类算法中的闵可夫斯基距离

最近闲着没事了解一下聚类算法,闵可夫斯基距离真有趣,搞得我有点一头雾水,废话不多,上定义: 本文从公式上表述了欧几里得距离、曼哈顿距离、切比雪夫距离记忆闵可夫斯基距离之间的关系。 一般而言,定义一…

距离度量:欧式距离/曼哈顿距离/切比雪夫距离/闵可夫斯基距离/标准化欧氏距离/余弦距离/汉明距离/杰卡德距离/马氏距离

日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2 常见的距离公式 2.1 欧式距离(Euclidean Distance): 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接…

欧式距离余弦相似度matlab,相似度计算——欧氏距离,曼哈顿距离,闵可夫斯基距离,汉明距离,夹角余弦...

在机器学习领域,被俗称为距离,却不满足三条距离公理的不仅仅有余弦距离(满足正定性和对称性,但是不满足三角不等式),还有KL距离( Kulback- Leibler Divergence),也叫作相对熵(不满足对称性和三角不等式),它常用于计算两个分布之间的差异 欧氏距离 欧氏距离: 切比雪夫距离…

闵可夫斯基距离

本文从公式上表述了欧几里得距离、曼哈顿距离、切比雪夫距离记忆闵可夫斯基距离之间的关系。 一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: 1) d(x,x) 0 // 到自己的距离为0 2) d(x,y) > 0 // 距离非负 3) d(x,y) d(y,x) // 对称…

闵可夫斯基距离(MinkowskiDistance)

闵可夫斯基距离(MinkowskiDistance) 闵氏距离不是一种距离,而是一组距离的定义。 (1)闵氏距离的定义 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为: 其中p是一个变参数。 当p1时,就是曼哈顿距离 当p2时&#xf…

Linux操作系统概述

Linux操作系统概述 Linux发展历史Linux的发展要素Linux与UNIX的异同操作系统类型选择和内核版本的选择Linux的系统架构 Linux内核的主要模块Linux的文件结构 Linux发展历史 Linux操作系统于1991年诞生,目前已经成为主流的操作系统之 一 。其版本从开始的0.01版本到…

国产Linux操作系统

一、Kylin OS:由麒麟软件公司发行的Debian系Linux操作系统。 包含四个版本: 1、银河Kylin:为银河麒麟Linux操作系统收费版本。 2、Neo Kylin:是中标麒麟,为麒麟软件与中标软件合并后的发行版本。 3、Open Kylin&…

Linux【操作系统】

目录 一、冯诺依曼体系结构 ​ 二、操作系统​ 三、进程 ​ 1.PCB ​ 2.task_ struct内容分类 ​ 3.查看进程​​​​​​​​ 4.getpid​ 5.系统调用接口和创建子进程 6.fork基本用法 四、进程状态 进程状态查看 Z(zombie)-僵尸进程 僵尸进程危害 孤儿进程 …

理解操作系统(Linux)

操作系统是一款对软硬件资源进行管理的软件! 操作系统为什么要对软硬件资源进行管理呢? 操作系统通过合理的管理软硬件资源的手段,为用户提供良好的(稳定的、高效的、安全的)执行环境。 操作系统是如何进行管理的呢…

【Linux操作系统】——Linux命令

文章目录 Linux系统命令登录注销目录文件补充ls通配符rm命令cp命令more命令less命令vi命令文件压缩以及解压 Linux系统命令 Windows系统中查看当前电脑的IP地址 ipconfig 在Linux系统中查看当前电脑的IP地址 ifconfig 登录注销 sudo useradd ccy //添加用户 (不能被立即使用…

Linux操作系统基础(完结)

#摘要 一、Linux操作系统概述 二、Linux操作系统安装 三、Linux文件系统及文件基础 四、Linux操作系统命令使用基础 五、Linux应用程序的安装与卸载基础 五、用户及进程 六、相关信息查询 七、网络配置 八、Linux应用程序的安装与卸载基础 #一、Linux操作系统概述 ##1、发展 …

Linux:操作系统

Linux-操作系统 一、操作系统:1.程序:2.OS: 二、虚拟机的三种网卡:1.桥接:2.NAT:3.仅主机: 三、linux命令:1.shell:2.linux命令(本质是程序)&…

Linux——操作系统详解

目录 一.操作系统的含义 1.操作系统是什么? 2.那么操作系统为什么要对软硬件资源进行管理呢?这样做的好处在哪里? 3.操作系统又是怎么进行管理的? 如何理解“先描述,再组织”? 二.总结: …