自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 一分钟学会“沉浸式翻译”插件的安装与使用

一分钟学会安装和使用“沉浸式翻译”插件,学不会算我的

2023-12-22 17:28:28 4481

原创 第一章:马尔科夫决策过程(不可能看不懂)

用最朴素的话语解释最高端公式,有限马尔可夫决策过程,指的是状态的数量有限(无论是离散的还是连续的),如果状态数是无限的,则通常采用泊松过程来建模,这个过程又被称作连续时间,马尔可夫过程,允许发生无限次事件,对每个事件发生的机会相对较小,但当时间趋于无穷的时候,这些时间以极快的速度发生。这里我把老师当成智能体,老师和学生组成环境,但如果把学生作为智能体,那么认真听讲,玩手机和睡觉则是智能体的决策而不是状态。在实际问题中是很常见的,毕竟交互式相互的,强化学习的环境并不是严格的静止环境,它也可以是其他智能体。

2023-12-02 17:00:00 836

原创 数学建模冲国奖之——Person相关系数和Spearman相关系数

(1)如果两个变量本身就是线性的关系,那么皮尔逊相关系数的绝对值大的就是相关性强,小的就是相关性弱。(2)在不确定两个变量是什么关系的情况下,即使算出了Person系数发现很大,也不能说明两个变量线性先关,甚至不能说明这两个变量是相关的。因此我们必须要画出散点图来看才行。(3)事实上,比起相关系数的大小,在实际中我们更关注显著性(假设检验)。

2023-07-04 08:00:00 3929

原创 蓝桥杯算法全集之多重背包问题I(动态规划算法)

有N种物品和一个容量是V的背包。第i种物品最多有si件,每件体积是vi,价值是wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。用下面这个图来分别动态规划的四个经典背包问题。

2023-03-24 11:17:15 1057 1

原创 蓝桥杯算法全集之完全背包问题(动态规划算法)

有N种物品和一个容量是V的背包,每种物品都有无限件可用。第i种物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。用下面这个图来分别动态规划的四个经典背包问题。

2023-03-20 18:00:00 806

原创 LSTM从入门到精通(形象的图解,详细的代码和注释,完美的数学推导过程)

按照八股文来说:RNN实际上就是一个带有记忆的时间序列的预测模型RNN的细胞结构图softmax激活函数只是我举的一个例子,实际上得到y也可以通过其他的激活函数得到其中a代表t-1时刻隐藏状态,a代表经过X这一t时刻的输入之后,得到的新的隐藏状态。公式主要是大白话解释一下就是,X是今天的吊针,a是昨天的发烧度数39,经过今天这一针之后,a变成38度。这里的记忆体现在今天的38度是在前一天的基础上,通过打吊针来达到第二天的降温状态。

2023-03-16 17:03:22 59580 37

原创 蓝桥杯算法全集之01背包(动态规划算法):

有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。用下面这个图来分别动态规划的四个经典背包问题。

2023-03-14 20:52:02 577

原创 算法基础集训(第31天)------>BFS之经典【走迷宫】

给定一个n×m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角(1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角(n,m)处,至少需要移动多少次。数据保证(1,1)处和(n,m)处的数字为0,且一定至少存在一条通路。简而言之:从起点到终点,中间有些路径有障碍物。

2023-02-03 17:15:00 768

原创 算法基础集训(第30天)------>DFS之经典【n皇后问题】

n−皇后问题是指将n个皇后放在n×n的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。

2023-02-01 17:15:00 425

原创 算法基础集训(第29天)------>DFS之排列数【DFS入门级算法,初学者必会】

该题对于排列数的定义是对给定的数字n,将从1~n的数字进行全排列并输出。

2023-01-31 13:43:07 387

原创 区块链技术5--BTC网络

第一次听到交易,若是合法交易,则将其加入该交易集合并转发给邻居节点,以后再收到该交易就不再转发(避免网络上交易无线传输)。每个节点维护一个邻居节点集合,消息传播在网络中采用flooding,某个节点在收到一条消息会将其发送给所有邻居节点并标记,下次再收到便不会再发送该消息。邻居节点选取随机,未考虑网络底层拓扑结构(一个在加利福尼亚的节点的邻居节点可能在阿根廷),也与现实世界物理地址无关。区块越大,则网络上传输越慢。用户将交易发布到BTC网络上,节点收到交易后打包到区块,然后将区块发布到BTC网络上。

2023-01-16 16:00:00 1666

原创 区块链笔记4--BTC实现

在挖矿过程中,一次伯努利试验,成功的概率极小,失败的概率极大。(需要注意的是,出块时间指的是整个系统出块时间,并非挖矿的个人)”,判断一个交易是否合法,要查一下该交易所需的BTC是否在该集合中,只有在集合中才是合法的。也就是说,对整个系统而言,已经过去10min,仍然没有人挖到区块,那么平均仍然还需要等10min(很不符合人的直觉)。如图:A转给B五个BTC,转给C3个BTC,B将5个BTC花掉,则该交易记录不保存在UTXO中,C没有花掉,则该交易记录保存在UTXO中。但目前来说,交易费远远小于出块奖励。

2023-01-15 14:34:51 1843

原创 区块链技术3--BTC协议

A将10个比特币转给了B(5个)和C(5个),A对该交易进行签名,同时该交易需要说明所花掉10个比特币来源(来自铸币交易)。之后,B将自己的5个比特币转给C(2个)和D(3个),该交易需要B的签名,该交易需要说明所花掉的5个比特币来自于第二个交易中。然后,C将自己所拥有的全部7个比特币都转给E,并对该交易签名,可以发现该交易中C的比特币来源于两个交易中。这样,就构成了一个简单的区块链。其他节点收到区块后,验证区块合法性,如果系统中绝大多数节点验证通过,则接收该区块为最新的区块并加入到区块链中。

2023-01-15 13:00:00 1526

原创 区块链技术2---BTC的数据结构

相连,这里的哈希指针的哈希值是对前一个区块的整体取哈希值(包括前一个区块的哈希指针),因此区块链如果有一个区块被修改,那么他之后的所有区块都会被修改,我们只需要判断最后一个区块的哈希值,就可以判断整个区块是否被修改过。我们将该交易到根节点的这一路径称为Merkle Proof,全节点将整个Merkle Proof发送给轻节点,轻节点即可根据其算出根哈希值,然后与轻节点自身保存从根哈希值进行对比即可,从而验证该交易是否被写入区块链。Root Hash(根哈希值)

2023-01-14 20:00:00 638

原创 区块链技术1---密码学基础

哈希碰撞:对于给定的X和Y,且X!=Y,有可能会得到Hash(X)=Hash(Y),这种情况则称为哈希碰撞。而的性质保证如果有Hash(X)!=Hash(Y),则必然有X!=Y(但是这是理想状态,如果学过数据结构的同学应该知道常用的碰到哈希碰撞的解决办法有开放地址法等等)。在实际使用的过程中,哈希碰撞总是难以避免,但是我们只需要尽可能保证在X!=Y的前提下,使得Hash(X)!=Hash(Y),就可以认为其是collision resistancecollision resistance的意义。

2023-01-14 15:39:18 1209 2

原创 算法基础集训(第28天,共106天)------>并查集入门二:【中通块中点的数量】,同属于并查集题型,深受面试官和算法比赛的青睐

一:概念定义参考一文即可二:题目描述给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。C a b,在点 a 和点 b 之间连一条边,a 和 b 可能相等;Q1 a b,询问点 a 和点 b 是否在同一个连通块中,a 和 b 可能相等;Q2 a,询问点 a 所在连通块中点的数量;第一行输入整数 n 和 m。接下来 m 行,每行包含一个操作指令,指令为C a b,Q1 a b或Q2 a中的一种。对于每个询问指令Q1 a b,如果 aa 和 bb 在同一个连通块中,则输出Yes。

2022-09-12 17:00:00 161 1

原创 算法基础集训(第27天,共106天)------>轻松入门常考算法【并查集】,代码精简,思维精巧,深受比赛和面试官的青睐

并查集的两个常见操作:1.将两个集合合并2.询问两个元素是否在同一个集合中基本原理:每个集合用一棵树表示,树根的编号就是整个集合的编号,每个节点存储它的父亲节点,p【x】表示x的父节点,如下图:二:题目描述一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。M a b,将编号为 aa 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中;输入格式第一行输入整数 n 和 m。

2022-09-11 15:14:09 429

原创 算法基础集训(第26天,共106天)------>彻底搞懂Trie树之【最大异或对】,附详细思路和图文代码解析

异或:两个数字转化为二进制数,从低位开始进行异或运算。异或也算也可称之为不进位加法。

2022-09-10 21:45:06 309

原创 算法基础集训(第25天,共106天)------>彻底搞懂Trie树,字符串数量统计

Trie可用于统计字符串集合某一字符串的出现次数,和kmp同属于字符串算法。

2022-09-08 16:38:33 178

原创 算法基础集训(第24天,共106天)------>彻底搞懂初学者的噩梦《kmp》算法,手撕kmp

求子串是常用算法之一,是基础中的难题,朴素方法求子串是使用两个for循环,最终会导致超时,当m和n太大,程序运行就比较笨重,本质原因是朴素算法每次都需要对模串的指针回溯,重复比较了一些之前比较过的东西,而今天要讲的kmp算法,指针不需要回溯到模串的头部,使用(后面细说这个代码的含义,也是代码比较难以理解的一部分)即可。

2022-09-06 17:05:43 472 1

原创 算法基础集训(第23天,共106天)------>彻底搞懂【滑动窗口】的【单调队列】模型

前面文章【队列】已经生动描述了队列的特点和基本操作,顾名思义,单调队列的意思就是队列中时刻保持单调性,和前面的文章【单调栈】类似特点,但是处理手法略有不同。

2022-08-29 17:09:54 369 3

原创 算法基础集训(第22天,共106天)------>彻底弄懂【单调栈】模型

单调栈可分为:单调递增栈和单调递减栈单调递增栈:单调递增栈就是从栈底到栈顶数据是从大到小单调递减栈:单调递减栈就是从栈底到栈顶数据是从小到大但是名字其实不重要,做题目只需判断存储的数据从站栈底到栈顶的单调情况即可...

2022-08-27 17:15:00 207 1

原创 算法基础集训(第21天,共106天)------>彻底搞懂【队列】,采用数组模拟的方式,图文并茂,常规队列请私信我拿pdf课程笔记

普通队列,链式队列,循环队列。本篇文章着重讲解在数组模拟普通队列方面的做法,后期会讲解c++中的STL的queue,但是为了照顾java和python的同学,采取数组模拟的方式进行讲解,但是整体内容还是比较简单的。队列是一种先进先出的数据结构(FIrst In First Out,FIFO)数据的插入只能在队列的尾部进行数据的删除只能在队列的头部进行。...

2022-08-27 11:30:00 263

原创 算法基础集训(第20天,共106天)------>彻底搞懂【栈】,采用数组模拟的方式,图文并茂,常规栈请私信我拿pdf课程笔记

栈一般形式有和本篇文章主要讲解数组模拟栈,一般来说,数组可以做栈能做到的所有事情,栈不能做数组能做到的所有事情,在后面的文章我们会讲解如何利用c++的STL的stack来直接方便的使用栈这一数据结构,但是照顾python和java和c的同学,数组模拟栈也是非常便捷的。栈的主要元素包括栈顶和栈顶,主要操作(进出)都是在栈顶执行的,如下图。.........

2022-08-26 17:15:00 441

原创 算法基础集训(第19天,共106天)------>彻底搞懂【双链表】,采用数组模拟的方式,图文并茂,常规结构体链表请私信我拿pdf课程笔记

双向链表也是链表的一种,它每个数据结点中都有两个指针域,分别指向其直接前驱和直接后继。所以我们从双向链表的任意一个结点开始都可以很方便的访问其前驱元素和后继元素。

2022-08-26 11:30:00 389 1

原创 算法基础集训(第18天,共106天)------>彻底搞懂【单链表】,采用数组模拟的方式,图文并茂,常规结构体链表请私信我拿pdf课程笔记

从结构体的角度分析面试时的链表:1.链表用一组地址任意的存储单元存放线性表中的数据元素。2.数据a的存储映像称为结点,含数据域和指针域。指针域存储直接后继结点的存储位置。3.n 个结点由指针链组成一个链表。它是线性表的链式存储映像,称为线性表的链式存储结构。4.结点只有一个指针域的链表称为单链表。5.有两个指针域的链表称为双链表。6.首尾相接的链表称为循环链表。7.还有如下名词8.设置头节点的好处:a.便于首元结点的处理,首元结点的地址保存在头结点的指针域中,

2022-08-25 10:29:30 769 6

原创 算法基础集训(第17天,共106天)------>轻松学会【区间合并】,附上图文以及详细思路解析和代码解析,搞不懂来找我

合并所有有交集的区间。例如【2,4】和【3,7】,取其并集得到【2,7】为最终结果画个图帮助理解给定 n 个区间 [,l,r],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。第一行包含整数 n。接下来 n 行,每行包含两个整数 l 和 r。共一行,包含一个整数,表示合并区间完成后的区间个数。

2022-08-24 10:04:58 476

原创 算法基础集训(第16天,共106天)------>彻底搞懂【离散化】类型的区间和问题,详细思路+题解+常见问题分析+万年无误代码模板

简单来说,就是把一些非常零散的点重新分配到从1~n的自然数,这个分配过程也可以称作映射,比如坐标轴范围是-10^9~10^9,但是其中有实际数值的坐标只有十个,我们把这个十个数字映射到1~10即可。

2022-08-22 16:53:49 708

原创 算法基础集训(第15天,共106天)------>带你轻松入门位运算,本篇文章主要讲解位运算的基本知识和基本操作

举例:n是12,二进制表示是1100,因此最后一位1就是100我们用lowbit(x)来实现该问题,可以先看下图方便理解

2022-08-21 16:50:10 150

原创 算法基础集训(第14天,共106天)------>彻底搞懂【双指针算法】的使用场景和使用方法,附大量思路分析和习题总结

对于双指针来说,主要应用有和。对于单个数组而言,就是定义两个指针,相向或相同移动,不断进行问题的判断或者计算,最终求出问题的解。对于两个个数组而言,就是定义两个指针,从两个数组的头部开始移动,不断判断进行求解对于链表而言,就是定义两个指针,一快一慢(即快慢指针),不断进行迭代求解。注:双指针实际上就是i和j的移动。

2022-08-20 17:00:36 916 1

原创 算法基础集训(第13天,共106天)------>带你彻底弄懂【差分】之【差分矩阵】:许多高校的的比赛甚至面试题都有考过手写代码 题目+分析+万年模板应有尽有

我们定义:a【】数组是b【】数组的前缀和,也就是a【i】【j】的值是以b【i】【j】为右下角端点的矩阵的的和。

2022-08-18 17:09:59 336

原创 算法基础集训(第12天,共106天)------>带你轻松入门【差分】:许多高校的新生赛暨校赛都有考过此题

差分类似于前缀和的逆运算。

2022-08-16 17:23:17 282

原创 算法基础集训(第11天,共106天)------>带你彻底搞懂【前缀和】之【子矩阵的和】,很多高校的校赛都考过

2.利用图形的分析思想,得到sum【a】【b】=a【a】【b】+sum【a-1】【b】+sum【a】【b-1】−sum【a-1】【b-1】如果用淳朴的思路,从a【x1】【y1】累加到a【x2】【y2】当然可以,但是数据量如果比较大就会超时,因此需要预处理来简化后续的累加行为。注意:我们这里预处理是直接从a【1】【1】开始的,从a【0】【0】开始也行,但是由于出现下标是负数的情况,所以还需要提前声明一下。假设sum【i】【j】表示从a【0】【0】到a【i】【j】这个区域的和,我们就容易得到如下递推式。...

2022-08-14 17:19:03 412

原创 算法基础集训(第10天)------>带你轻松入门【前缀和】这一求和杀器

今天要学习的是算法前缀和,先讲解入门内容,部分前缀和

2022-08-13 17:15:10 86

原创 算法基础集训(第9天)------>彻底搞懂【高精度除法】本文采用c++实现,因为java和python有内部高精度算法的库函数

答:高精度除法法适用于数位很多的数字的除法,比如两个数字a和b,len(a)= 100,说明a有一百位,显然int和long long int都无法存储这么大的数据,这时候这需要高精度除法来实现对两个数字的相除。在实际算法中,一般默认一个数字的数位特别大但是另一个数字的数位不算大。4.其余精度算法都是从低位开始循环,但是除法的循环是从高位开始循环。3.高精度乘法的算法默认一个数值的位数很多,另一个位数不多。1.用a以字符串的形式读入,b直接以整数的形式读入。...

2022-08-12 17:25:43 515

原创 算法基础集训(第08天)------>彻底搞懂【高精度乘法】本文采用c++实现,因为java和python有内部高精度算法的库函数

答:高精度乘法法适用于数位很多的数字的乘法,比如两个数字a和b,len(a)= 100,说明a有一百位,显然int和long long int都无法存储这么大的数据,这时候这需要高精度乘法来实现对两个数字的相乘。在实际算法中,一般默认一个数字的数位特别大但是另一个数字的数位不算大。...

2022-08-12 17:05:08 473

原创 算法基础集训(第07天)------>彻底搞懂【高精度减法】本文采用c++实现,因为java和python有内部高精度算法的库函数

答:高精度加法适用于数位很多的数字的减法,比如两个数字a和b,len(a)= 100,说明a有一百位,显然int和long long int都无法存储这么大的数据,这时候这需要高精度减法来实现对两个数字的相减。注:python和java内部有高精度减法的库函数,所以不需要实现,但是c++没有,需要手动实现相对于高精度加法,减法需要多定义一个函数cmp,用来先比较两个数字的大小。.........

2022-08-11 20:11:05 365

原创 算法基础集训(第06天)------>带你彻底弄懂【高精度加法】

答:高精度加法适用于数位很多的数字的加法,比如两个数字a和b,len(a)= 100,说明a有一百位,显然int和long long int都无法存储这么大的数据,这时候这需要高精度加法来实现对两个数字的相加。注:python和java内部有高精度加法的库函数,所以不需要实现,但是c++没有,需要手动实现。.........

2022-08-09 16:40:13 195

原创 算法基础集训(第05天)------>全网最全【二分】万字详解,超多经典例题和拓展题:包括两个神仙模板和各种让你头痛的边界情况,最后还有STL内部封装函数

二分查找解决的是单调函数上的查找问题。然后就有人问了,我遇到的二分查找都是在数组中找一个数,这个也是函数吗?广义地来说,数组就是一些离散的点,所以它是一种离散函数。所以,数组元素的查找其实也是在函数中进行查找。二:整数二分查找的两个万能模板(借鉴试用多年,从未出错)二分模板一共有两个,分别适用于不同情况。算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。模板1(往左找答案):当我们将区间[l, r]划分成[l, mid]和时,其更新操作是。......

2022-08-08 20:30:00 1290

原创 算法基础集训(第04天)------>一篇文章带你彻底搞懂【逆序对问题】

答:举个例子(4 5 6 | 1 2 3),发现左区间最小的4比右区间的1大,则左区间4以及4之后的所有数字都可以和1形成逆序对,代码表示就是。注:和归并排序没有什么区别,仅仅是多了一行res+=mid-i+1,其中res记录逆序对的数量。给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。3. 算一个左一个右的;4. 把他们加到一起;1. 递归算左边的;2. 递归算右边的;...

2022-08-06 18:45:00 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除