![](https://img-blog.csdnimg.cn/2021050511215773.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 54
本文介绍传统的数据结构与算法,以及刷题记录
音程
这个作者很懒,什么都没留下…
展开
-
(简单介绍)PageRank算法
这个是一个经典算法,还是有必要了解的,这里由于讲得不会很详细,所以要求你有一点数学知识,如果有,看完这篇就大概明白PageRank是个啥了。本篇不涉及证明之类的,而是主要搞清楚背景以及怎么做。PageRank算法。原创 2022-11-06 10:13:06 · 1473 阅读 · 0 评论 -
python实现笛卡尔积,实现不同长度的列表元素之间进行组合,zip的升级版
缺点是只能相同长度。厉害了,不知道其怎么实现的, 如果是我,只会写3重循环进行组合。原创 2022-06-21 16:10:18 · 457 阅读 · 0 评论 -
(算法)python合并两个有序列表
文章目录版本0版本1版本0合并两个有序列表,得到的列表的长度是两个有序列表的长度之和。这个版本是默认的版本。def hb(list1,list2): result = [] len1=len(list1) len2=len(list2) i=j=0 while i<len1 and j<len2: if list1[i]<list2[j]: result.append(list1[i])原创 2022-05-19 16:41:27 · 2277 阅读 · 0 评论 -
python:对于一个正数,只返回整数部分以及小数部分的一位有效数字
效果展示keep1(0.000523)结果:0.0005实现部分import numpy as np下面根据小数部分的一位有效数字是下取整得到还是四舍五入分为了两个算法,客官按需取即可。def keep1(x):#只保留小数部分的一位小数,而且是下取整。 if x==0: return x i=0 y=x while(y<1):#说明需要将y乘以10. y=y*10 i+=1#说明已经乘以了一.原创 2022-04-12 18:58:55 · 1154 阅读 · 0 评论 -
快速了解Alias method/别名采样方法
文章目录背景普通算法别名采样方法背景给定一个概率分布:[1/2, 1/3, 1/12, 1/12],我要你根据这个概率分布,随机抽取一个事件出来。有人说,直接用np.random.choice不就完了嘛,哈哈,确实如此,但是我们现在是在学习的过程,所以假设不允许你使用这个函数,必须自己写一个,只允许你均分分布地随机生成一个数,其他的内置采样函数不允许你使用。普通算法我们可以将其对应到线段上。此时变成了[1/2,5/6,11/12,1]。那么我们可以随机生成一个数,然后,查找其所在的位置。学过数据原创 2022-03-30 10:16:23 · 878 阅读 · 0 评论 -
全息归约,全息算法。
我的个人理解,跟大家分享一下:全息归约产生全息算法,问题之间的多项式归约有很多方式,千变万化,全息归约是特殊的一种,可以解决一部分问题,然后给了一个名字:全息规约。有了全息归约,当然就可以用后者解决前者问题了,从而后者有多项式时间算法,前者也有,即使用了全息算法来解决。全息归约是一种特殊的归约是什么意思?据我所知,其特殊指的是其每次都是归约到一个计数问题,图的完美匹配有多少种不同的完美匹配。注意到,这个是有多项式时间算法的。这个问题,称之为全息归约的种子问题。由3可以知道全息算法一般用来解决计数问原创 2021-07-17 17:16:32 · 452 阅读 · 0 评论 -
量子计算的符号表示(Dirac notation)
文章目录基本符号常用符号基本符号解释:*表示共轭。|a>表示a是列向量。常用符号解释:上述四个符号要牢记,今后的|0>其就是表示那个向量。原创 2021-07-15 19:36:51 · 2985 阅读 · 0 评论 -
生成树、最小生成树的一些性质以及邻域的概念
设一个无向连通图G=(V,E),顶点个数记作m,边的数量为n。其对应的最小生成树记作f。则生成树T的性质有:边数量为m-1没有圈加入任何一条边都会形成一个圈对于一颗生成树T,定义操作:在其上添加一条边,并在产生的圈里删除一条边,则:其仍然为一棵树。邻域:对于一个生成树T,执行一次上述操作所得到新的生成树T’称之为T的邻居,这些所有邻居和它自己一起构成T的邻域。精确:如果一个解是局部(邻域)最优解,那么其也是全局最优解,那么称这个邻域是精确的。对于定理1:树A和B是无向图的两个生成树,原创 2021-05-29 21:56:15 · 1030 阅读 · 6 评论 -
程序实现:由给定几个数确定凸组合系数,组成一个给定的数
问题描述给定几个数xix_ixi确定凸组合系数λi\lambda_iλi,组成一个给定的数xxx。∑λixi=x\sum \lambda_ix_i=x∑λixi=xs.t.∑λi=1s.t. \sum\lambda_i=1s.t.∑λi=10≤λi≤10\le\lambda_i\le10≤λi≤1例如:给定{1,2,3,4},现在给定2.5,现在要由这4个数凸组合成2.5,求出凸组合系数,如果不唯一,给出一个就好了。比如上面可以是0*1+0.5*2+0.5*3+0*4=2.5,由于是原创 2021-05-28 16:18:44 · 243 阅读 · 0 评论 -
正则语言及其性质
正则语言对应的是正则文法,也叫做3型文法。定义其中M是有穷自动机,你可以认为是一个DFA,什么是DFA?见文章:DFA确定性有穷自动机及其化简相关的定义:原创 2021-05-20 15:23:52 · 3589 阅读 · 0 评论 -
最小编辑距离(Minimum Edit Distance)
概念编辑距离的概念:给定两个字符串oppa和apple,如何把前者变成后者?你可以使用的操作有:1.增加字符2.删除字符3.更新字符。一种可能的做法是:oppa->appa->appl->apple:共使用了3次编辑。可以验证,上面的字符串转换做法就是最小编辑距离,其他的做法诸如:oppa->aoppa->apppa->appla->apple:4次这都不是我们想要的。求解求解两个字符串的最小编辑距离,我们使用动态规划(dynamic原创 2020-12-19 17:37:56 · 1594 阅读 · 3 评论