凸包算法是计算几何中的最经典问题之一了.给定一个点集,计算其凸包.凸包是什么就不罗嗦了 本文给出了<计算几何——算法与应用>中一书所列凸包算法的Python实现和Matlab实现,并给出了一个Matlab动画演示程序. 啊,实现谁都会实现啦╮(╯▽╰)╭,但是演示就不一定那么好做了. 算法CONVEXHULL(P)  输入:平面点集P  输出:由CH(P)的所有顶点沿顺时针方向组成的一个列表 1.   根据x-坐标,对所有点进行排序,得到序列p1, …, pn 2.   在Lupper中加入p…
获得凸包的算法可以算是计算几何中最基础的算法之一了.寻找凸包的算法有很多种,Graham Scan算法是一种十分简单高效的二维凸包算法,能够在O(nlogn)的时间内找到凸包. 首先介绍一下二维向量的叉积(这里和真正的叉积还是不同的):对于二维向量a=(x1,y2)和b=(x2,y2),a×b定义为x1*y2-y1*x2.而它的几何意义就是|a||b|sin<a,b>.如果a与b夹角小于180度(逆时针),那么这个值就是正值,大于180度就是负值.需要注意的是,左乘和右乘是不同的.如图所示:…
toLeftTest toLeftTest是判断一个点是否在有向直线左侧的算法. 当点s位于向量pq左侧时,toLeftTest返回true.当点s位于向量pq右侧时,toLeftTest返回false. 具体的算法可以根据三角形的有符号面积来计算 对应上图中的 2倍三角形面积area 的公式为 当pqs的方向为逆时针时,面积area为正:当pqs的方向为顺时针时,面积area为负值.当area为0时,说明点s在直线pq上 下面的算法有效避免了除法的出现,减少了计算误差. bool toLeft…
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构算法之OLS算法python实现 压缩感知重构算法之IRLS算法python实现 IRLS(iteratively reweighted least squares)算法 (本文给出的代码未进行优化,只是为了说明算法流程 ,所以运行速度不是很快) IRLS(iteratively reweighte…
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构算法之OLS算法python实现 压缩感知重构算法之IRLS算法python实现 Orthogonal Least Squares (OLS)算法流程 实验 要利用python实现,电脑必须安装以下程序 python (本文用的python版本为3.5.1) numpy python包(本文用的版本…
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构算法之OLS算法python实现 压缩感知重构算法之IRLS算法python实现 算法流程 算法分析 python代码 要利用python实现,电脑必须安装以下程序 python (本文用的python版本为3.5.1) numpy python包(本文用的版本为1.10.4) scipy pyth…
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构算法之OLS算法python实现 压缩感知重构算法之IRLS算法python实现 IHT(iterative hard thresholding )算法是压缩感知中一种非常重要的贪婪算法,它具有算法简单的有点,且易于实现,在实际中应用较多.本文给出了IHT算法的python和matlab代码(本文给…
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构算法之OLS算法python实现 压缩感知重构算法之IRLS算法python实现 SP(subspace pursuit)算法是压缩感知中一种非常重要的贪婪算法,它有较快的计算速度和较好的重构概率,在实际中应用较多.本文给出了SP算法的python和matlab代码,以及完整的仿真过程. 参考文献:…
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构算法之OLS算法python实现 压缩感知重构算法之IRLS算法python实现 本文主要简单介绍了利用python代码实现压缩感知的过程. 压缩感知简介 [具体可以参考这篇文章] 假设一维信号x长度为N,稀疏度为K.Φ 为大小M×N矩阵(M<<N).y=Φ×x为长度M的一维测量值.压缩感知问题就…
1.最优化与线性规划 最优化问题的三要素是决策变量.目标函数和约束条件. 线性规划(Linear programming),是研究线性约束条件下线性目标函数的极值问题的优化方法,常用于解决利用现有的资源得到最优决策的问题. 简单的线性规划问题可以用 Lingo软件求解,Matlab.Python 中也有求解线性规划问题的库函数或求解器,很容易学习和使用,并不需要用模拟退火算法.但是,由一般线性规划问题所衍生的整数规划.混合规划.0/1规划.二次规划.非线性规划.组合优化问题,则并不是调用某个库函…
1.整数规划问题 整数规划问题在工业.经济.国防.医疗等各行各业应用十分广泛,是指规划中的变量(全部或部分)限制为整数,属于离散优化问题(Discrete Optimization). 线性规划问题的最优解可能是分数或小数.但很多实际问题常常要求某些变量必须是整数解,例如:机器的台数.工作的人数或装货的车数.根据对决策变量的不同要求,整数规划又可以分为:纯整数规划.混合整数规划.0-1整数规划.混合0-1规划. 整数规划与线性规划的差别只在于增加了整数约束.初看起来似乎只要把线性规划得到的非整数…
一.什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO(^_^).PageRank算法计算每一个网页的PageRank值,然后根据这个值的大小对网页的重要性进行排序.它的思想是模拟一个悠闲的上网者,上网者首先随机选择一个网页打开,然后在这个网页上呆了几分钟后,跳转到该网页所指向的链接,这样无所事事.漫无目的地在网页上跳来跳去,PageRank就是估计这个…
常见排序算法-Python实现 python 排序 算法 1.二分法     python    32行 right = length-  :  ]   ):  test_list = [,,,,,,]  test_val1 =   test_val2 =   ):  length = len(array)  :  :  ):  ]:  array[i],array[i+] = array[i+],array[i]  length -=   :  :  ):  ]:  array[i],arra…
最近在要实现一个openlayer的凸多边形,也遇到了不小的坑,就记录一下 1.具体的需求: 通过在界面点击,获取点击是的坐标点,来绘制一个凸多边形. 2.思考过程: 1)首先,我们得先获取点击事件发生时,触发的点的坐标 map.events.register('click', map, function (e) { var pixel = new OpenLayers.Pixel(e.xy.x,e.xy.y); var lonlat = map.getLonLatFromPixel(pixel…
1 前言 冒泡排序是大家最熟悉的算法,也是最简单的排序算法,因其排序过程很象气泡逐渐向上漂浮而得名.为了更好的理解其基本的思想,毛三胖利用JQuery实现了冒泡排序的动画演示,并计划陆续实现其它排序算法的动画演示.现将冒泡排序JQuery实现的基本思路和代码分享如下: 2 动画演示 2.1 演示地址 冒泡排序动画演示 2.2 30秒GIF 演示动画前30秒gif图,图片大小1.60M. 3 动画设计及实现 因为JavaScript中并不存在类似sleep()这样的函数,所以只能利用setInte…
圈水池 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有一个牧场,牧场上有很多个供水装置,现在牧场的主人想要用篱笆把这些供水装置圈起来,以防止不是自己的牲畜来喝水,各个水池都标有各自的坐标,现在要你写一个程序利用最短的篱笆将这些供水装置圈起来!(篱笆足够多,并且长度可变)   输入 第一行输入的是N,代表用N组测试数据(1<=N<=10)第二行输入的是m,代表本组测试数据共有m个供水装置(3<=m<=100)接下来m行代表的是各个供水装置的横纵坐…
检查您的系统是否具有受支持的 Python 版本和 MATLAB R2014b 或更新版本.要检查您的系统上是否已安装 Python,请在操作系统提示符下运行 Python. 1)打开Prompt,输入' cd matlabroot\extern\engines\python' 切换并创建文件夹 输入'python setup.py install' 进行安装.如果提示python版本不对进去下面流程. 2)键入'python –version' 查看python版本.如果版本不符合上一句指令提…
kmp算法python实现 kmp算法 kmp算法用于字符串的模式匹配,也就是找到模式字符串在目标字符串的第一次出现的位置比如abababc那么bab在其位置1处,bc在其位置5处我们首先想到的最简单的办法就是蛮力的一个字符一个字符的匹配,但那样的时间复杂度会是O(m*n)kmp算法保证了时间复杂度为O(m+n) 基本原理 举个例子:发现x与c不同后,进行移动a与x不同,再次移动此时比较到了c与y, 于是下一步移动成了下面这样这一次的移动与前两次的移动不同,之前每次比较到上面长字符串的字符位置后…
                           KMP算法-Python版 传统法: 从左到右一个个匹配,如果这个过程中有某个字符不匹配,就跳回去,将模式串向右移动一位.这有什么难的? 我们可以这样初始化: 之后我们只需要比较i指针指向的字符和j指针指向的字符是否一致.如果一致就都向后移动,如果不一致,如下图: A和E不相等,那就把i指针移回第1位(假设下标从0开始),j移动到模式串的第0位,然后又重新开始这个步骤: 因为主串匹配失败的位置前面除了第一个A之外再也没有A了,我们为什么能知道…
可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html MATLAB Engine API的使用文档: http://cn.mathworks.com/help/matlab/matlab-engine-for-python.html 原材料: 1.MATLAB 2015a  32位的 2.Python 2.7.13    32位…
第一篇 基本概念 01 什么是数据结构 02 什么是算法 03 应用实例-最大子列和问题 第二篇 线性结构 01 线性表及其实现 02 堆栈 03 队列 04 应用实例-多项式加法运算 05 小白专场-多项式乘法与加法运算-c语言实现 05 小白专场-多项式乘法与加法运算-python语言实现 第三篇 树(上) 01 树与树的表示 02 二叉树及存储结构 03 二叉树的遍历 04 小白专场-树的同构-c语言实现 04 小白专场-树的同构-python语言实现 第三篇 树(中) 01 二叉搜索树…
数据挖掘入门系列教程(五)之Apriori算法Python实现 加载数据集 获得训练集 频繁项的生成 生成规则 获得support 获得confidence 获得Lift 进行验证 总结 参考 数据挖掘入门系列教程(五)之Apriori算法Python实现 在上一篇博客中,我们介绍了Apriori算法的算法流程,在这一片博客中,主要介绍使用Python实现Apriori算法.数据集来自grouplens中的电影数据,同样我的GitHub上面也有这个数据集. 推荐下载这个数据集,1MB大小够了,因…
之前我分享过一个数据结构与算法的课程,很多小伙伴私信我问有没有Python版. 看了一些公开课后,今天特向大家推荐北京大学的这门课程:<数据结构与算法Python版>. 课程概述 很多同学想要转行机器学习,也确实掌握了一些机器学习模型原理并具备基础的编程功底,但是在笔试.面试的时候还会掉链子,大概率是数据结构和算法知识薄弱.数据结构和算法是程序员的内功心法和基本功.无论是人工智能还是其它计算机科学领域,掌握扎实的数据结构和算法知识,往往会助力不少! 北京大学公开课<数据结构与算法Pyth…
学习来源 北京大学-数据结构与算法Python版 目标 了解计算机科学.程序设计和问题解决的基本概念 计算机科学是对问题本身.问题的解决.以及问题求解过程中得出的解决方案的研究.面对一 个特定问题,计算机科学家的目标是得出一个算法(algorithm) ,写出一组解决该问题可能出现的任何情况的步步为营的指令.算法通过有限过程解决问题.算法是解决方案. 计算机科学可以被看作是对算法的研究. 可计算 抽象 理解什么是"抽象"以及抽象在问题解决过程中的作用 定义 抽象使我们能以一种区分所谓的…
从本篇文章开始,我将会陆续介绍提高 VS 开发效率的文章,欢迎大家补充~ 在进行代码开发的时候,我们往往会频繁的使用键盘.鼠标进行协作,但是切换使用两种工具会影响到我们的开发速度,如果所有的操作都可以只用键盘来完成,那开发效率将得到大幅度的提升.因此,灵活地应用 Visual Studio 的键盘快捷键,就可以起到事半功倍的地步. 为了便于日后查看,我根据使用的效果分成这么几块:代码编辑.查找与替换.代码美化.代码导航.Visual Studio 窗口和调试,并在最后提供修改默认快捷键的方法.同…
Productivity Power Tools 是微软官方推出的 Visual Studio 扩展,被用以提高开发人员生产率.它的出现一定程度上弥补和完善了 Visual Studio 自身的不足,比如其中的标记自动补全.复制引用等看似虽小,但却真得帮助我减轻了很多麻烦.博客园中推荐该扩展的文章也不在少数,本篇多少也有点类似,只是为了大家阅读方便,我为个别比较好有的功能配上了 GIF 动画. 该扩展中很多有用的功能已经被直接加入到下一个版本的 Visaul Studio IDE当中,也就是说你…
Productivity Power Tools 是微软官方推出的 Visual Studio 扩展,被用以提高开发人员生产率.它的出现一定程度上弥补和完善了 Visual Studio 自身的不足,比如其中的标记自动补全.复制引用等看似虽小,但却真得帮助我减轻了很多麻烦.博客园中推荐该扩展的文章也不在少数,本篇多少也有点类似,只是为了大家阅读方便,我为个别比较好有的功能配上了 GIF 动画. 该扩展中很多有用的功能已经被直接加入到下一个版本的 Visaul Studio IDE当中,也就是说你…
在进行代码开发的时候,我们往往会频繁的使用键盘.鼠标进行协作,但是切换使用两种工具会影响到我们的开发速度,如果所有的操作都可以只用键盘来完成,那开发效率将得到大幅度的提升.因此,灵活地应用 Visual Studio 的键盘快捷键,就可以起到事半功倍的地步. 为了便于日后查看,我根据使用的效果分成这么几块:代码编辑.查找与替换.代码美化.代码导航.Visual Studio 窗口和调试,并在最后提供修改默认快捷键的方法.同时,在参考了资源[2]的文章后,发现使用动画演示不仅直观而且更方便于日后回…
免费的精品: Productivity Power Tools 动画演示 Productivity Power Tools 是微软官方推出的 Visual Studio 扩展,被用以提高开发人员生产率.它的出现一定程度上弥补和完善了 Visual Studio 自身的不足,比如其中的标记自动补全.复制引用等看似虽小,但却真得帮助我减轻了很多麻烦.博客园中推荐该扩展的文章也不在少数,本篇多少也有点类似,只是为了大家阅读方便,我为个别比较好有的功能配上了 GIF 动画. 该扩展中很多有用的功能已经被…
一.each 1.方式一:$.each(数组或者自定义对象,function(i,j){console.log(i,j)}) $.each(li,function(i,j){ console.log(i,j) }); 2.方式二: $('选择器').each(function(){ 执行相应的代码; }) 3.each的中的退出循环 return ---->continue return false --->break <!DOCTYPE html> <html lang=&…