- 博客(84)
- 收藏
- 关注
原创 Python如何调用STK接口编程
STK Help文档里面其实有讲,但也有不少坑,第一次使用python连接STK一般会报错,要先跑一下下面的脚本在本地生成STK相关的python的库才行。这是之前在github搜的,不知道现在为啥被删了。
2024-01-19 17:38:10 1063
原创 单调栈使用场景
比方求最近大:那么这个值的价值只能被后面大的去计算,也就是被大的去pop,新来的值会pop栈内小的值,那么就是递减栈。使用单调栈记住这一点去判断是递增栈还是递减栈:每个位置的值都会进栈一次,这个值如果被pop出栈了,那么就是计算这个值价值的时候。
2022-10-09 10:13:07 250 1
原创 尺取法(待补)
最近看到了尺取法。发现一个特点:当满足设 L2,L1 R2=f(L2),R1=f(L1),L表示左指针,R表示右指针。f表示左指针为L时最小R解。若:L2>L1 可推出 R2>R1 就可以用尺取法
2022-04-25 16:42:02 171
原创 二分 模板
对于答案是整数的二分,经常要求解最大合法解或者最小合法解。这样就有边界处理的情况。这里写了一个模板:以下是求解x^2<=y的最大x的程序。correlation表示相关性,correlation为-1表示越小越合理,correlation为1表示越大越合理。judge函数返回三种指,-1:非法;0:刚好为解;1:合法解;legal_L 需要设置成最小界,legal_R为最大界。而且必须满足至少覆盖合法解和非法解各一个。EF将会返回judge最接近0的解(刚好为解,或者为合法解)
2022-04-25 15:20:58 290
原创 机器学习/深度学习中矩阵求导
在讨论矩阵求导之前,我们先回忆一下为什么要求导。吴恩达的视频中讲到过相关问题,可以将找一个函数的极值看做机器学习的工作,比如下图,当前找到的解对应图中A点(x,f(x))。此时可以求函数在A点的偏导。然后x减去就是更新的下一个位置。就是学习速率。可以看出离极值点越远,偏导的绝对值越大,那么每次移动步长的就更大,这样更快接近极值点。反之,离极值点越近,偏导的绝对值越小,每次移动的步长就更小,这样在求极值点的时候更精确。从上述可以了解到求偏导的作用,就是帮助我们更新参数。因此如果要求一个参数
2022-02-19 16:52:36 1333
原创 2127. 参加会议的最多员工数
这题除开拓扑找环,其它无技巧可言。分类讨论。想了好久才把情况考虑全面。感觉做题思维还是不够灵敏,不够沉着。1.基本上每个人都会想到找一个有向环2.发现只是找有向环的话连第一个样例都过不了,针对第一个样例发现两节点的环有点特殊,两节点的环貌似有一个bug,能够让许多其它的看似无规律的组合合法。然后我的思路过程如下图:先是这种构型:做法就是找出所有的上述构型,然后记录最大值。找这个构型就用拓扑排序的算法,每次找0入度的节点就行了,同时要记录每个节点被间接喜欢的最大间接数,这里稍微有点动态
2022-01-15 21:19:15 247
原创 一阶动量和二阶动量及Adam等优化算法笔记
就按照从动量和矩的角度探讨优化理论的内涵(以动量法、AdaGrad和Adam举例) - 知乎的讲解学习,讲的挺细的。这里补充一些笔记方便以后自己复习用。1.AdaGrad算法其中说到了“如果目标函数有关自变量中某个元素的偏导数一直都较大,那么该元素的学习率讲下降较快;反之,如果目标函数有关自变量中某个元素的偏导数一直都较少,那么该元素的学习率将下降较慢”。我认为这是站在SGD的角度来看的。SGD的梯度更新如下对于SGD来说,其学习率一直是,然后相较之下AdaGrad算法的学习
2022-01-14 16:29:15 4442
原创 leetcode 2132. 用邮票贴满网格图
这题写了好久,一开始掉一个坑里面没出来。我一开始想的是列举邮贴的左上角贴在每个格子的情况,提前计算出前缀和判断是否可贴,可贴的话就把贴的那块区域全部都赋值为已访问。往后遍历的时候,已访问过的就不再考虑它作为左上角的情况,这样应该不会超时。并没有想到采用延迟更新。结果样例都没过,然后对着样例发现没有考虑每个格子作为其他三个角的情况,然后补成了每个格子作为四个角的情况,结果样例过了,交上去过了60+,wa了。然后静下心来再想了想,想到了正解。写第一个解法浪费了太多时间。怎么说呢,也不知道
2022-01-14 10:30:38 263
原创 leetcode 2136.全部开花的最早一天
不得不说我在做题上的运气真是一直都很背。这题拿到手按照所有情况来看就是全排列。这里题目虽然说了一盆花不强制播种时间必须连续,但为了结果最优,那肯定是连续更好。因为如果一盆花a播种一半再去播种另一盆b再回头播种a的方案的效果肯定差于:先播种完b再播种a的方案。这里我列举的情况比较单一。从感性的分析来看你播种一半再去干其他的其实不能带来任何收益(先播种完的话可以先长好)。现在问题就简化了,就是说要播种那一盆花就一次播种完。单调栈一般不在排列上做文章,所以单调栈pass。动态规划的话,还是逃不过顺
2022-01-12 22:01:50 275
原创 机器学习-正则化 L0,L1范数
我是参考这篇博客理解的:机器学习中的范数规则化之(一)L0、L1与L2范数 - 呆风语者 - 博客园没有看其中优化部分的讲解,中间有一些地方补充一下我自己的理解。这个文章很好的就是一开始就把这个公式放出来了:很多文章在讲范数问题的时候都没有先把这个摆出来。这样就是说要优化w,使左右两个项的和最小。接下来就是如下的经典图形了(盗张图):注意看横纵坐标是参数w的不同维度,这里就只是考了二维参数的情况。然后上图方形的图案就是w的L1范数的一个等势线,就是上述公式(1)的第二个项
2022-01-12 16:59:05 316
原创 RNN-BPTT 笔记
我主要是参考如下文章理解的:数学 · RNN(二)· BPTT 算法 - 知乎其中:这一步划红线的地方是如何理解的:从这张图可以大概看出Lt和W的关系:我一开始单纯的理解成Lt是W的高次项函数(这里将所有激活函数当线性函数去简化推导的复杂性),然后求导,发现这样并不是这样理解的。此时还原RNN的结构,RNN展开后中间要经过t层。这t层,每次都要乘以W。我们可以想成第1次乘以W1,第2次乘以W2,第3次乘以W3,以此类推。只是说这里的W1=W2=W3=...=W。然后前向传..
2022-01-04 15:15:30 498
原创 百度914笔试A卷第二题 排队
事后想出的方法,可以用单调栈。不过这个单调栈的构造是真的难恶心到我了,尤其出现0的那个情况一直过不去。最后才搞明白。可以这么想:统计后面的人有多少步延迟了,刚开始想到这个地方就直接带到后缀和的思路去了,在不怎么正确的思路上越走越远。后来发现数据范围和动态性问题无法解决便放弃了它。再后来发现了一丢丢单调栈的特征(每次前k人移动的时候就重置了这K个人的步数,那么只用保存它之前的且大于K重置的记录就行了 /(ㄒoㄒ)/~~)。还有就是计数的时候,统计第i时,第i个人要单独拎出来算,因为他到柜台前就不用走了。
2021-09-15 14:43:28 126
原创 线性筛(数学原理)
线性筛几年前理解过一次,有点模糊。今天重新理了一下,感觉这应该算非常容易理解的一种思路。问题:找出一个方法,在O(n)的时间内找到1-n内所有的素数面对这个问题我们可以先想简单的方法,然后层层递进:方法1:首先所有合数都可以拆成一个质数和另一个非1的数的乘积,即:合数x=prime[j]*i ;其中x表述一个合数(x<=n),prime[j]表示第j个质数,i就是一个非1的数。那么现在我们可以分别遍历prime[j]和i来筛出所有的合数,就是一个双重循环。中间可以加上prime[j]*
2021-09-06 10:50:17 983
原创 数论分块原理
数论分块模板题:,采用数论分块可以优化到。为书写方便以下都写做n/i首先我们要知道这一点:存在一些连续的x1,x2...xk,有n/x1=n/x2=...=n/xk。比如100/34=100/35=100/36=...=100/50。对于这些连续出现的,我们只需要知道出现次数,然后只用计算其中一个数就可以了,比如:(n/x1)*(xk-x1+1)。现在要找出n,x1和xk的关系。下图用数轴描述了i和n/i的部分取值。其中n/(i-b)=n/(i-b+1)=n/(i-b+2)=...=n.
2020-09-23 01:01:34 334 1
原创 机器学习-吴恩达 第四周编程题(Coursera ;Octave 代码)
lrCostFunction.mfunction [J, grad] = lrCostFunction(theta, X, y, lambda)%LRCOSTFUNCTION Compute cost and gradient for logistic regression with %regularization% J = LRCOSTFUNCTION(theta, X, y, lambda) computes the cost of using% theta as the para
2020-08-30 16:08:56 240
原创 机器学习-吴恩达 第三周编程题(Coursera ;Octave 代码)
sigmoid.mfunction g = sigmoid(z)%SIGMOID Compute sigmoid function% g = SIGMOID(z) computes the sigmoid of z.% You need to return the following variables correctly g = zeros(size(z));% ====================== YOUR CODE HERE ======================
2020-08-22 19:23:33 487
原创 机器学习-吴恩达 第二周编程题(Coursera ;Octave 代码)
computeCost.m:function J = computeCost(X, y, theta)%COMPUTECOST Compute cost for linear regression% J = COMPUTECOST(X, y, theta) computes the cost of using theta as the% parameter for linear regression to fit the data points in X and y% Initial
2020-08-10 20:52:32 463
原创 机器学习-吴恩达 p31 笔记
这节视频针对这个推了下比较浅显的行列式计算的公式:θ:=θ-α/m﹡X'﹡(X﹡θ-y) 这里假设n=2,即两个特征量。y就是m*1的行列式,X就是m*3的行列式,X'就是3*m的行列式,θ就是3*1的行列式。 首先你看那个h(x)-y不就是每组数据和真实值的差吗,所以自然会想到X﹡θ-y。那么(h(x)-y)x不就是X'﹡(X﹡θ-y)吗,然后就没了。...
2020-06-17 17:22:38 134
原创 机器学习-吴恩达 p23 笔记
这堂课中讲到了线性代数正规求解 θ=pinv(x'﹡x)﹡x'﹡y,有弹幕说这是最小二乘法。 先设这里的x和视频中的维度一致,即n=1,特征数为1,m组数据。那么x就是m*2的一个行列式,x'就是2*m的一个行列式。x'﹡x就是一个2﹡2的行列式,pinv(x'﹡x)也是一个2﹡2的行列式,pinv(x'﹡x)﹡x'是个2*m的行列式,y是m﹡1的行列式,pinv(x'﹡x)﹡x'﹡y就是2﹡1的行列式,即θ为2﹡1的行列式。 现在可以猜想一下,θ不就是x﹡θ=y的解...
2020-06-17 11:43:33 152
原创 机器学习-吴恩达 p20 笔记
视频讲到了要将特征值的范围确定在一个较小的范围,下面的是视频的原图。 先说下这曲线为啥长这样。图的横纵坐标就表示为θ1,θ2.对于其中某个圆J(θ')(θ1,θ2各取得某值时代价一直为J(θ'))。那么当J(θ')变为J(θ''),变化值为ΔJ。假设θ1不变,那么θ2变化了ΔJ/5(这里考虑极端情况);假设θ2不变,那么θ1变化了ΔJ/2000(这里考虑极端情况)。很明显ΔJ/5远大于ΔJ/2000,那么图就对应上了。 换个角度看,如下图,可以发现θ1不变时,J(...
2020-06-16 18:03:25 141
原创 POJ2069 最小球覆盖 模拟退火算法
之前对模拟退火一直没能较好的理解,今天借别人的代码分析了一波。 https://www.cnblogs.com/lfri/p/11604701.html这篇博客的第二份代码就是这题模拟退火的解法。有了自己的理解。 这份代码的思路实际上是先通过求平均找到一个起始点P0。然后将这个P0不断蹦来蹦去找到距离答案最近的点。它这个蹦来蹦去不是乱蹦,是利用了退火函数的优点来蹦。 先对一个比较简单的情况分析,假如问题是:一个单调函数(区间[a,b]),现在让你找出最大值时的...
2020-06-09 11:08:28 367
原创 HDU3007 求解最小圆覆盖 模拟退火?
这次先上代码,再证明代码的可行性,感觉有点不像模拟退火,因为这个代码借用的实际上是一个完全单调的函数(只有一个极值点,就是说只有一个低谷,那个点实际上就是答案,就是全局最优) 就不自己写代码了,献上网上找到的一段代码: https://blog.csdn.net/weixin_41863129/article/details/88071125 这段代码的思路其实就是先找一个点作为起始点P,然后不断找到和该点距离最远的点A,然后将P向A慢慢挪动很小的一段距...
2020-06-05 15:29:37 256
原创 python win32gui+pynput 自动回复qq消息
寒假期间,因为疫情,这几天班群要天天报平安,早上起不来就写了这个。(如果身体有异常记得改哦,不能谎报)先谢谢以下博主:https://www.cnblogs.com/hwj2019/p/11552055.htmlhttps://www.jb51.net/article/155520.htmhttps://blog.csdn.net/u011311291/article/detail...
2020-01-31 12:30:53 3586
原创 poj-2559 单调栈
题目链接:https://vjudge.net/problem/POJ-2559以前接触这道题的时候还以为这是单调栈的模板题。但现在觉得单调栈数据结构远比这道题解法好理解得多。解法:初次见这道题的话肯定是先分析问题(鬼tm才一开始就确定单调栈是解法)。首先:按照常规思路,试一试从左到右扫描,每扫到一个位置i,高度为h[i],计算位置i的贡献attri[i]:当第i个棍一定会被贡献(...
2019-12-30 16:47:00 351
原创 树莓派打开Serial(串口)
我是通过ssh,连接的树莓派接下来查看串口对应关系:显示serial0->ttyS0 表示:你用串口(TXD,RXD)连接时,用的是设备ttyS0,那么写程序时就应该是ser = serial.Serial("/dev/ttyS0", 9600)。网上都说用ttyAMA0,说是稳定些,但我ttyS0也还行,供学术研究够了。这一波操作完了之后可以连接...
2019-12-22 16:25:53 5361
原创 树莓派打开I2c
我是通过ssh,连接的树莓派查看是否配置好:因为我的I2c连接了数模转换器PCF8591 ADC,所以显示的48地址,同理,如果拔了这个设备就会显示:...
2019-12-22 16:23:35 3172
原创 nano 编辑下显示行号的两个方法
先进入nano编辑瞎敲一通:法一:Ctrl+c:法二(居然是无意间按出来的):先按:Ctrl+3(#) 再按 Shift+3(#)然后就有了:
2019-12-20 15:57:58 9125 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人