<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_42378281的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_42378281</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_42378281]]></copyright><item><title><![CDATA[算法与数据结构实验题 4.8 干净的序列]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/114915475</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/114915475</guid><author>qq_42378281</author><pubDate>Wed, 17 Mar 2021 09:13:03 +0800</pubDate><description><![CDATA[★实验任务
有一个长度为 n 的序列，第 i 个的数为 a[i]。我们定义如果它的一个连续的子串为“没有进行过干净的交易”，那么这个子串的最大值与最小值之差在[m,k]中。
现在，你的任务是找到一条最长的“没有进行过干净的交易”的子串。
★数据输入
第一行输入三个正整数 n m k (0&lt;n&lt;=10000),m(0 =&lt; m =&lt; k =&lt; n)。
接下去一行有 n 个正整数，第 i 个数表示 a[i]的值。
★数据输出
输出一个数，表示这个子串的长度。
输入示例1
5 0 0]]></description><category></category></item><item><title><![CDATA[经典论文合集]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/113761255</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/113761255</guid><author>qq_42378281</author><pubDate>Mon, 08 Feb 2021 19:02:55 +0800</pubDate><description><![CDATA[优化器：
An overview of gradient descent optimization algorithms

]]></description><category></category></item><item><title><![CDATA[关于原神抽奖概率的简要分析]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/111327579</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/111327579</guid><author>qq_42378281</author><pubDate>Thu, 17 Dec 2020 20:17:56 +0800</pubDate><description><![CDATA[最近迷上了原神这款游戏，趁着保研完，肝了两个星期，也氪了一些金。先不谈这款游戏可玩性有多高，但论氪金强度算是我从小到大能排得上第一的了。
对于这种寸卡寸金的游戏，如何在无穷无尽的抽卡活动中，做到理性抽卡，无疑需要严谨的数学分析，才能了解大概氪多少金才能满足自己的预期。本文将对此做出一定的解答。
同时，本文对于网上一直所传的氪不改命，玄不救非之说，也将进行一定的抨击。
# -*- coding: utf-8 -*-
"""
import matplotlib.pyplot as plt
import rand]]></description><category></category></item><item><title><![CDATA[LeastSquare Method最小二乘法（非线性转线性）用于多项式拟合]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/108652342</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/108652342</guid><author>qq_42378281</author><pubDate>Thu, 17 Sep 2020 20:29:37 +0800</pubDate><description><![CDATA[clear all;
close all;
n=40;
a=5;
b=10;
c=6;
x1=10*rand(1,n)-6;
x2=x1.^2;
f=@(k1,k2)a*k2+b*k1+c;
y=f(x1,x2)+30*(rand(1,n)-0.5);
sample=[x2;x1;y]';
x_mean=mean(sample);
sample=sample-x_mean;
covmat=1/n*(sample'*sample);
[V,D]=eig(covmat);
lambda=diag(D);
[m,]]></description><category></category></item><item><title><![CDATA[PRM]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/107864213</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/107864213</guid><author>qq_42378281</author><pubDate>Fri, 07 Aug 2020 15:57:47 +0800</pubDate><description><![CDATA[close all;
clear all;
%% map
global obs radius
obs=[22,-16;
    16,-18];
radius=[15.41 15.05];
src=[30;40];
dst=[-20;-40];

%% PRM
n=2000;
points=zeros(2,n);
points(:,1)=src;
points(:,n)=dst;
dis=zeros(n,n);
for i=2:n-1
    while true
        prand=rand(1,]]></description><category></category></item><item><title><![CDATA[RRT算法（sampling based motion planning）]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/107687875</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/107687875</guid><author>qq_42378281</author><pubDate>Thu, 30 Jul 2020 12:59:19 +0800</pubDate><description><![CDATA[clear all;
close all;
global n obstacle dst range step
map=zeros(255,255);
n=9;
obstacle=[170 50;50 36 ;78 89;90 140;205 169;123 94;124 215;150 170;40 200];
range=round(4*rand(1,n)+14);
src=round(25*rand(2,1)+1);
dst=round(45*rand(2,1)+190);
for i=1:n
    ]]></description><category></category></item><item><title><![CDATA[双模式人工势场法（Robotic Motion Planning）]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/107603398</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/107603398</guid><author>qq_42378281</author><pubDate>Mon, 27 Jul 2020 02:35:28 +0800</pubDate><description><![CDATA[看了网上一堆写人工势场的，跑了代码后，发现都有一个问题——高几率横穿障碍物。
自己琢磨了下，想到之前学过的神经网络辨识器。在可能发生碰撞时，仅仅获取梯度的正负信息，并加以随机性，去搜索正确的下一步路径。没想到真的效果很好。
这里要说一下，人工势场法的梯度下降，不建议采用动量梯度（即使用比率也不要太高）。在做了大量实验之后，我发现动量梯度有一定几率在终点处来回转几次，才到达终点。感兴趣的自己可以做下。
所以双模式，也就是只在遇到碰撞或局部极小点情况时，采用梯度辨识模式，以帮助robot迅速回到正轨。
下面上代]]></description><category></category></item><item><title><![CDATA[共轭梯度法]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/107592738</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/107592738</guid><author>qq_42378281</author><pubDate>Sun, 26 Jul 2020 14:59:28 +0800</pubDate><description><![CDATA[import numpy as np

Q=np.matrix([[1,-0.5],[-0.5,1]])
b=np.matrix([[-1.56],[8.6]])

def F(x):
    global Q,b
    return 0.5*x.T*Q*x-x.T*b

def g(x):
    return Q*x-b

i=0
x0=np.random.rand(2,1)
x=x0
d=g(x)
epsilon=1e-32
print("step 0 :",x.flatten())
while i]]></description><category></category></item><item><title><![CDATA[01背包（一般dp实现+树形dp实现）]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106717219</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106717219</guid><author>qq_42378281</author><pubDate>Fri, 12 Jun 2020 15:48:36 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;algorithm&gt;
using namespace std;
int dp[10000][10000];
int w[10000],v[10000];
bool chosen[10000][10000];
int main()
{
	int n,m;
	scanf("%d %d",&amp;n,&amp;m);
	for(int i=1;i&lt;=n;i++)
	{
		scanf("%d %d",&amp;w[i],&amp]]></description><category></category></item><item><title><![CDATA[分块与线段树]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106675346</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106675346</guid><author>qq_42378281</author><pubDate>Wed, 10 Jun 2020 21:22:13 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;algorithm&gt;
#include&lt;math.h&gt;
using namespace std;
int block[1000];
int n,num,m;
int val[1000000];
int size,left;
bool isbound(int x)
{
	if(x%size)
	{
		return false;
	}
	else
	{
		return true;
	}
}
void add(int l]]></description><category></category></item><item><title><![CDATA[matlab演奏爱尔兰画眉]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106672493</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106672493</guid><author>qq_42378281</author><pubDate>Wed, 10 Jun 2020 18:20:11 +0800</pubDate><description><![CDATA[tune4=0:0.0001:1;
tune8_3=0:0.0001:1.5;
tune8=0:0.0001:0.5;
tune2=0:0.0001:2;
tune2_3=0:0.0001:3;
tune1=0:0.0001:4;
s=@(x,y)sin(2*pi*2^(3/12)*x*y);
do=440;
re=440*2^(2/12);
mi=440*2^(4/12);
fa=440*2^(5/12);
sol=440*2^(7/12);
la=440*2^(9/12);
xi=440*2^(11/1]]></description><category></category></item><item><title><![CDATA[AC自动机]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106671176</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106671176</guid><author>qq_42378281</author><pubDate>Wed, 10 Jun 2020 17:19:57 +0800</pubDate><description><![CDATA[通过数组构建trie树，还有一种链表构建的，下次更。
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;algorithm&gt;
#include&lt;queue&gt;
#include&lt;vector&gt;
using namespace std;
int trie[100000][26];
int fail[100000];
int cnt=0;
const int root=0;
int size[100000];
c]]></description><category></category></item><item><title><![CDATA[PSO算法（matlab实现）]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106591194</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106591194</guid><author>qq_42378281</author><pubDate>Sat, 06 Jun 2020 17:58:11 +0800</pubDate><description><![CDATA[老师布置的作业，仿照B站上的PSO教学视频，完成PSO算法。
这里是借助matlab，用PSO算法对内置的peaks函数进行了一个函数优化，并进行了粒子群的仿真。
下面是收敛动画和代码。

clc
clear all
%% Parameter
varmax=3;
varmin=-3;
epoches=100;
w=1;
wdamp=0.99;
c1=2;
c2=2;
cost=@(x)3*(1-x(1)).^2.*exp(-(x(1).^2) - (x(2)+1).^2) ... 
   - 10*(x(1]]></description><category></category></item><item><title><![CDATA[关于图论的几大算法(持续更新中)]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106591100</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106591100</guid><author>qq_42378281</author><pubDate>Sat, 06 Jun 2020 17:48:26 +0800</pubDate><description><![CDATA[dijstra的一般实现：
#include&lt;stdio.h&gt;
#include&lt;vector&gt;
#include&lt;string.h&gt;
#include&lt;algorithm&gt;
using namespace std;
typedef struct node{
	int num,value;
	node(int num,int value):num(num),value(value){
	}
}node;
vector&lt;node&gt; v[10000];]]></description><category></category></item><item><title><![CDATA[KM算法的真O(n^3)写法]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/106581826</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/106581826</guid><author>qq_42378281</author><pubDate>Sat, 06 Jun 2020 04:38:55 +0800</pubDate><description><![CDATA[最近研究了下KM算法求二分图的最大权匹配，网上一堆人讲slack数组可以优化KM算法到O(n3)，仔细研究了下发现他们的写法和直接找min值，复杂度本质上是一样的，感觉有点画蛇添足。
看了一篇大佬的文章，找到了这个真O(n3)的写法，它通过不重复构造新的增广路径将KM算法优化到了O(n3)，这里我自己实现了一遍。以下是实现代码。
大佬的链接
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;vector&gt;
#include&lt;]]></description><category></category></item><item><title><![CDATA[自我复制机（C语言实现版）]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/105513860</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/105513860</guid><author>qq_42378281</author><pubDate>Tue, 14 Apr 2020 16:00:57 +0800</pubDate><description><![CDATA[刚看了北大刘田老师讲的递归定理，忍不住好奇心，用C语言实现了他讲的自我复制机。
其中为了模拟图灵机的可改变的输入带，我用了sprintf函数，使用字符数组input来暂时保存带上的内容，方便改变。
这里，转义字符是一个大坑，所以我用deal字符数组，来解决转义字符的问题。实际上input和deal数组里存储的内容是相同的，只是由于转义字符，两者要进行一个转换，具体见transfer函数。
最终打印...]]></description><category></category></item><item><title><![CDATA[用户级线程VS系统级线程]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/105502245</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/105502245</guid><author>qq_42378281</author><pubDate>Tue, 14 Apr 2020 01:38:45 +0800</pubDate><description><![CDATA[用户级线程
import time
import threading
def calc():
    x=1.5
    for i in range(1000000):
        if i&amp;1:
            x*=2.6
        else:
            x/=2.6

tlist=[]
for i in range(64):
    tlist.ap...]]></description><category></category></item><item><title><![CDATA[cache命中率对程序运行时间的影响真的很大吗？]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/105501908</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/105501908</guid><author>qq_42378281</author><pubDate>Tue, 14 Apr 2020 01:09:17 +0800</pubDate><description><![CDATA[这几天看到了一篇博文，叫CPU L2 缓存初探，其中作者想表达L2 cache和L3 cache存在巨大速度差，并且用go编了一段二分查找的程序，“果然”查了六倍有余。
一开始，被忽悠住了，但后来自己用C编了同样一段程序，发现不对劲，得出的结果发现并没有作者那么大的差距，甚至根据运行时间，都察觉不到cache的存在。这才发现，作者的源码有问题，原因是两个对比程序的复杂度差别巨大。
所以，今天写了这...]]></description><category></category></item><item><title><![CDATA[模拟退火算法（SA）]]></title><link>https://blog.youkuaiyun.com/qq_42378281/article/details/104480919</link><guid>https://blog.youkuaiyun.com/qq_42378281/article/details/104480919</guid><author>qq_42378281</author><pubDate>Mon, 24 Feb 2020 17:16:18 +0800</pubDate><description><![CDATA[这些天疫情在家里自己看高级人工智能，写了一个模拟退火算法做函数优化的例子，防止以后忘了...

优化函数：f(x)=x4−2x3+32x2+6xf(x)=x^{4}-2x^{3}+32x^{2}+6xf(x)=x4−2x3+32x2+6x
函数图像：
c++源码：
#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;cstdlib...]]></description><category></category></item></channel></rss>