给定一个数组a[N],里面包含N个向量。现在要求进行删点操作,删点原则如下:

1、求出N个向量的中心O1,删除离O1最远的那个点

2、求出N-1个向量的中心O2,删除O2最远的那个点

......

重复以上步骤,直到删掉M个点(N>M)。

求最后剩下的数组。

首先,这个问题答案可能不唯一。如果有两个最远点,删除哪一个会深刻影响后续的删点过程。如果坚持不改这个问题,那么最后得到的是一个有向无环图。

如果添加一个条件,保证不会产生多个最远点。那么这个问题就很准确了。

求中心可以维护总和和点的个数两个变量来直接计算,而不用每次删完点之后都求平均。

求最远点问题相当于给定一个图,求图中离点x最远的点。

用python简单实现一下这道题的“出题器”。

import numpy as np

# 一个随机数组
a = np.random.rand(100, 10)
pre = 10 # 删掉的点数 ans = []
na = np.copy(a)
while len(ans) < pre:
m = np.mean(na, 0)
d = np.linalg.norm(na - m, ord=2, axis=1)
di = max([(i, d[i]) for i in range(len(d))])
ans.append(na[di[0]])
na = np.append(na[:di[0]], na[di[0] + 1:], 0)
print(ans)

给你出道题:依次去掉离中心最远的M个点的更多相关文章

  1. 新鲜出炉的Java开发者中心,约起来!

    入门教程.SDK 和工具推荐下载.操作方法指导.API 参考,Java 开发者需要的,这里应有尽有. ▼ 话说现在 Java 开发者在云端进行开发非常火热啊,「云+Java」就好比才子配佳人,真是难以 ...

  2. 找出图像I的代数中心

    function centerGPos = cenP(I ) %cenP finds the core of the PSF % [row, col] = find(I > ); minRow ...

  3. 给你出道题---N个数字的静态决策区分问题

    决策,是世界上最重要的事情. 走路分两步:看准方向,大步前进.看准方向的过程就是决策. 任何一个问题,都对应两个空间:解空间和决策空间.我们所要做的就是使用决策空间去划分解空间. 决策可以分成两类:单 ...

  4. 阿里云EDAS在本地CentOS7.5 系统搭建测试环境,部署配置中心以及部署多个war包

    参考阿里云的EDAS开发文档: 使用 Ali-Tomcat 开发应用 我们自己在内网搭建CentOS7 的测试环境,需要的资源如下: Ali-Tomcat Pandora 容器 EDAS 配置中心安装 ...

  5. Ubuntu 16.04 软件中心闪退 解决方案

    最近使用16.04不知道是哪里出了问题,软件中心打不开了,点击图标之后完全不显示GUI,过一会儿软件就自动关闭了,然后也没有报错的log. 虽然可以使用命令行升级,但是强迫症不能忍啊. 经过一番折腾, ...

  6. Codeforces Round #260 (Div. 1) C. Civilization 树的中心+并查集

    题目链接: 题目 C. Civilization time limit per test1 second memory limit per test256 megabytes inputstandar ...

  7. SpringCloud实践引入注册中心+配置中心

    随着服务数量的增多,尤其是多数项目涉及jni本地方法的调用,所需参数配置较多,同时内存溢出等维护问题时常发生.鉴于此,原tomcat集群的使用已难满足需求,而微服务的思想契合当前项目实践,特在服务端构 ...

  8. Jquery学习之路(三) 实现弹出层插件

    弹出层的应用还是比较多的,登陆,一些同页面的操作,别人的总归是别人的,自己的才是自己的,所以一直以来想写个弹出层插件.不多废话,直接开始吧! 不想看可以在这里直接下载源码xsPop.zip 1:遮罩层 ...

  9. eject - 弹出可移动介质

    SYNOPSIS(总览) eject -h.breject [-vnrsfq] [<name>] eject [-vn] -d.breject [-vn] -a on|off|1|0 [& ...

随机推荐

  1. 《MacTalk·人生元编程》

    <MacTalk·人生元编程> 基本信息 <MacTalk·人生元编程> 基本信息 作者:池建强 出版社:人民邮电出版社 ISBN:9787115342232 上架时间:201 ...

  2. R语言缺点

    R的优点:免费,开源,体积小.缺点:对大文本处理差,另外一个也在于开源,package如果出错,烦死你.当你跑比较大的simulation,对效率有要求的时候,有时还是不得不用C,这可能是10小时和1 ...

  3. 网站功能操作分布引导插件:Intro.js介绍;React里如何使用Intro.js以及如何进行分页导航

    插件作用:使用向导,引导新用户正确使用Web网站.我的环境是React+Mobx. 基本使用介绍,参加代码地址里的README.md:https://github.com/usablica/intro ...

  4. ORA-12560: TNS: 协议适配器错误的解决方法

    ORA-12560: TNS: 协议适配器错误的解决方法 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来.windows平台个一如下操作:开始---程序 ...

  5. MySQL命令行查询结果中文显示乱码

    数据库编码格式为utf8,表和字段也都是utf8,存进去的格式是utf-8 但是用命令行工具查询命令select * from 表名; 查询出来的中文是乱码 原因:MySQL客户端根本就不能以utf8 ...

  6. 附3 springboot源码解析 - 构建SpringApplication

    package com.microservice.framework; import org.springframework.boot.SpringApplication; import org.sp ...

  7. Jungle Roads_hdu_1301(prim算法)

    Jungle Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot ...

  8. 依赖注入 DI 控制反转 IOC MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. android 在UI线程之外处理Bitmap - 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接链接 Processing Bitmaps Off the UI Thread 在UI线程之外处 ...

  10. matlab中,怎样把矩阵中所有的0改为2

    一句话搞定:>> a(find(a==0))=[2]:把矩阵中所有的0改为2