算法
York1996
懒人一枚,热爱提高效率,简化流程,自动办公;
展开
-
PAD智龙迷城(puzzle and dragon)辅助转珠算法思路和python实现
先说下效果,杂色情况下3秒之内消除20个以上圆珠。1,首先是用安卓模拟器下载安装智龙迷城游戏。2,固定模拟器的大小和位置,这样游戏启动的时候在屏幕上的位置就是固定的了。方便后续操作。3,用python的autogui库获取当前鼠标的位置,然后鼠标放到左上角和右下角,查看坐标,并记录下来。4,根据上面的位置,就可以判断每一个珠子的算是精确的位置。用autogui模块获取左上角...原创 2019-10-13 20:37:17 · 3654 阅读 · 9 评论 -
python计算二维矩形IOU
计算交并比:交的面积除以并的面积。要求矩形框的长和宽应该平行于图片框。不然不能用这样的公式计算。原理,从一维上来理解:两条红线的距离之和减去黑色线之间的距离就是相交的距离。两条红线之和很容易算,两条黑线之间的距离就是最小的起点到到最大的末点,最小的起点好算,最大的末点就是两点加上各自长度之后的最大值。这就算出了一维的情况,二维的情况一样,计算二次而已。def iou(rect1,...原创 2019-06-15 13:11:12 · 1574 阅读 · 1 评论 -
Python实现简单的层次聚类算法以及可视化
基本的算法思路就是:把当前组间距离最小的两组合并成一组。算法的差异在算法如何确定组件的距离,一般有最大距离,最小距离,平均距离,马氏距离等等。代码如下:import numpy as npimport data_helpernp.random.seed(1)def get_raw_data(n): _data=np.random.rand(n,2) #生成数据的...原创 2019-01-25 21:46:27 · 5349 阅读 · 2 评论 -
Python实现DBSCAN聚类算法,可视化
英文全称:Density-Based Spatial Clustering of Applications with Noise基本思想:算法的思想大致是把所有的样本分成三类,一个是核心点(周围的样本点足够多),边缘点(周围的样本点不够多,但是在核心点的邻域内),孤立点(周围没有太多点,也不在核心点的邻域内)。算法流程:取出一个没有被分类的孤立点,如果它是核心点或者边缘点,就把...原创 2019-01-19 22:02:29 · 7883 阅读 · 0 评论 -
Python实现Sequential Leader Cluster算法,可视化
运行效果: 算法流程:依次判断每个点,如果这个还没有簇的话,这个点自己成为一个类,如果已经有簇了,如果这个点到已有簇们的距离最小值足够小,就归为距离最小值的一簇,如果距离别的簇都很距离都不够小,那么设为新的一簇。 缺陷:算法的进程不同会产生不一样的结果,如果A先进行分类,会自己成一类,然后B和A如果距离超过了阈值一点,B也会单独成为一类;如果A,B的距离不变,但是A,B中间插入...原创 2019-01-17 20:55:57 · 2813 阅读 · 0 评论 -
Python实现简单的K-Means算法,可视化
运行效果:import matplotlib.pyplot as pltimport numpy as np#随机生成大致是K个类别的点,用均匀分布生成中心点的位置,用高斯分布生成中心点周围的点def generatorN(K): center=[[np.random.rand(1)*20,np.random.rand(1)*20] for _ in range(K)]...原创 2019-01-17 14:59:08 · 3143 阅读 · 0 评论 -
求n个数,n个数的和等于11,n的取值范围为1到3 不能重复(Python实现)
def string_sum(ss): s=0 for item in ss: s+=int(item) return sstack=["1","2","3"]results=[]while True: num=stack.pop() s_=num for i in range(1,4): s_=num...原创 2018-12-03 23:30:45 · 356 阅读 · 0 评论 -
调试代码的奇怪现象
写代码的时候,出现错误,想找出错误原因,于是改了几次,还是报错,然后改回去,不报错了。感觉和最初报错的时候版本没有什么不同。奇怪啊原创 2018-12-02 14:13:20 · 198 阅读 · 0 评论 -
VB6查找某个字符出现个数的两种方法
split方法这个函数是用某个字符把一个字符串分割成数组。比如“123123123”用‘3’作为分隔符,就会得到“12“, “12“, “12“, “”共4个元素,然后元素个数和分隔符的出现次数是一一对应的。就可以写出下面的代码:Dim s As Strings = "1.56.4324.5.."Dim arrarr = Split(s, ".")Print s & "中...原创 2018-08-19 09:05:47 · 9138 阅读 · 0 评论 -
用vb.net实现深度神经网络,从矩阵向量运算开始
GitHub做这个的初衷是源自自己的一个困惑,自己这一段时间学习deep learning and neural network这本书,基本原理也懂了一些,当找到源码的时候,就用python运行了一下,minst数据集是一整个文件,你看不到每个手写数字长什么样,也不知道他们的标签怎么样。这样就开始运行代码,看着眼前的黑框出现的准确率,除了第一次运行有些新奇,然后就没有什么感觉了,只能证明别人的...原创 2018-08-05 17:32:53 · 1496 阅读 · 0 评论 -
vb.net实现查找有序数组B相对于全集有序A不存在的元素
算法描述:用数组A代表全集,用B数组代表A的一个子集,找出B中不存在的元素(A,B数组都是有序的),即要求C={x|x∈A and x∉B}算法举例:比如A={1,2,3,5,6,7,9,10,12},B={2,3,5,7,10},则,求出的结果就是C={1,6,9,12}算法分析:如果采用暴力的算法,从问题的要求开始,那么很自然的想法就是对于B中的每个元素,都在A中查找。这样是可以实...原创 2018-08-12 22:12:49 · 638 阅读 · 0 评论 -
欧几里得算法(辗转相除法)描述,证明和python实现
greatest common divisor又称辗转相除法算法描述:给定两个正整数m和n,求他们的最大公因子,即能够同时整除m和n的最大正整数。算法步骤:若m<n,那么m↔n,为了确保m>n。 求m除以n得到的余数r。 若r为0,算法结束,n为答案。 若r不为0,则m←n,n←r,再跳转到步骤2。其中←为赋值符号,右边的值赋值给左边; ↔为交换符号,两个...原创 2018-08-12 10:57:59 · 2588 阅读 · 0 评论 -
计数排序的发现,介绍和实现
首先,从一个简单的算法题目说起:统计以下字符串中每个英文字母的个数:qpowieruqouiwepruasdkjfhkjlasdhfkjlasdhfjklahskdjfhalksjdfhaksljdfhkajlsdhfjklasdhzbxcfcmnbasdfjklasdjflkjqoweurasdhfklajsdhflkjasdhoiquweroiuioasdjfksadhnhjkhdf...原创 2018-08-09 19:46:51 · 284 阅读 · 0 评论