自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程互斥的软硬件实现方法

一、单标志法算法思想:两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说每个进程讲入临界区的权限只能被另一个进程赋予。特点:每次只允许一个进程进入临界区用turn用于指示被允许进入临界区进程编号,turn=0此时就是P0进入临界区,假设先设置初值为0,让P1先上处理机,那么P1满足while(turn!=1),就会进入循环,直到时间片用完发生调度,换P0上处理机,P0进入临界区,到turn=1这行之后如果要让P1上处理机,P1就可以进入临界区

2022-08-22 11:47:35 1191

原创 【数据结构】有向无环图

总结规律有向无环图中,未知变量不能重复,比如上例,只会有一个a、b、c、d、e,但符号个数不变,做题时,我们先根据表达式画出最原始的图,然后再逐步简化,保证变量不重复,即可得到有向无环图最少的顶点个数。有向无环图若一个有向图中不存在环,则称为有向无环图,简称DAG图。比如有一棵树长这样,我们会发现它有重复的地方。还是有重复的地方,再次合并。...

2022-07-19 15:30:03 945

原创 python使用log1p可帮助解决数值右偏问题

在数据预处理时可以对偏度比较大的数据用log1p函数进行转化,使其更加服从高斯分布,此步处理可能会使我们后续的分类结果得到一个更好的结果; 平滑处理很容易被忽略掉,导致模型的结果总是达不到一定的标准,同样使用逼格更高的log1p能避免复值的问题——复值指一个自变量对应多个因变量;log1p的使用就像是将一个数据压缩到了一个区间,与数据的标准化类似。举例用图像表示出来会更加清楚:import numpy as np import matplotlib.pypl...

2022-04-06 19:07:52 3037

原创 字符数组简单操作

定义字符是char ,一定是单引号,每次只能赋值一个字符【单引号和双引号在C语言中用于创建两种不同的数据类型】如果希望使用能够容纳不止一个字符的变量,那就要用到字符数组ASCII表 字符数组char c[6]={'h','e','l','l','o'} //这里为什么申请5个空间呢,因为字符数组还会有一个'\0'字符占位,所以5个长度的字符需要6个存储空间字符数组存储字符串,必须存储结束符'\0' scanf读取整个字符串时使用%s,单个字符...

2022-03-04 15:45:59 924

原创 【数据结构】数组与稀疏矩阵

1、数组的存储假如有一个二维数组a[m][n],第一个数据元素a[0][0] 存储地址为 loc(a[0][0]),每个元素所占存储单元为k,则按行存储 loc(a[i][j]) = loc(a[0][0]) + ( i*n + j) * k例:同理可得按列存储 loc(a[i][j]) = loc(a[0][0]) +( j*m +i) * k特殊矩阵的压缩(1)第一类:特殊矩阵的压缩存储(2)第二类:稀疏...

2022-03-03 21:10:54 921

原创 【数据结构】 字符串模式匹配

模式匹配目前有两种方法: BF算法和KMP算法BF算法思路:从目标串的第一个字符和模式串的第一个字符开始,依次比较每个字符,如果相同指针同步后移比较后续字符,如果不同i指针后移一个,j指针回到第一个字符重新匹配,若匹配成功就返回模式串t中第一个字符在目标串中的位置,失败返回0代码:int index(Sqstring s,Sqstring t){ int i=j=1; //下标从1开始 while(i<=s.length&&j<=t...

2022-02-28 13:21:47 1607

原创 Hive分布式数据仓库

简介Hive是基于静态批处理Hadoop的一个数据仓库工具,通过Hive可以实现将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,同时将sql语句转换为MapReduce任务进行运行,所以其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计。Hive具有sql数据库的外表,但应用场景完全不同,Hive 适合高延迟的查询,Hive并不提供实时的查询和基于行级的数据更新操作,所以Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析Hive特性

2022-02-13 14:50:31 2323

原创 R语言实验三列表和数据框

列表1、创建1.1 创建一个列表L1,记录三位同学的姓名(A,B,C),编号(1,2,3),数学成绩(80,90,95),语文成绩(75,95,80)L1<-list(`姓名`= c('A','B','C'),`编号`= c(1,2,3),`数学成绩`=c(83,77,90),`语文成绩`=c(73,65,82))L11.2 将L1个组件名更改为英文,记为L2L2 <- L1names(L2) <- c('name','id','math','...

2022-02-11 13:52:23 1621

原创 Bert模型

语言表示语言表示有两种类型:1、上下文无关的语言表示,例如 Glove 和 Word2vec,其中词汇表中每个标记的嵌入是恒定的,并且不依赖于单词的上下文。缺点:具有完全不同含义的同一个词将具有相同的表示2、上下文有关的语言表示,例如 Elmo 和 OpenAI-GPT,其中令牌表示取决于使用它的单词的上下文BERT 模型有助于生成每个令牌的上下文表示。它甚至能够获取整个句子、句子对或段落的上下文。BERT 基本上使用了在非常大的数据集上以无监督的方式对模型进行预训练的概念进行...

2022-02-06 14:40:24 941

原创 Python之高阶Pandas的使用(二)

transform今天学习另一个内建方法transform,它与apply方法类似但稍有不同,主要表现在:>transform可以产生一个标量值,并广播到各分组的尺寸数据中>transform可以产生一个与输入分组size相同的对象>transform不可改变它的输入举例df=pd.DataFrame({'key':['a','b','c']*3, 'value':np.random.rand(9)})df按照key分组

2022-01-27 10:15:00 1036

原创 python之高阶pandas的使用(一)

用维度表表示重复的值values=pd.Series(['apple','orange','lemon','apple']*2)values去重pd.unique(values)计算每个种类出现次数pd.value_counts(values)我们可以用不同的数字来编码不同的值value=pd.Series([0,1,2,0]*2)valuetake用于恢复之前的字符串dim=pd.Series(['apple','e...

2022-01-19 17:05:17 1293

原创 Python的三个重要函数

一、遍历函数(map)map函数用于遍历序列,对序列中每个元素进行操作,最终获取新的序列。lis=[2,3,4,5]new_list=map(lambda x:x+10,lis)list(new_list)a=[7,8,9,10]b=[10,15,20,25]new_ab=map(lambda x,y:x+y,a,b)list(new_ab)二、筛选函数(filter)filter函数用于对序列中的元素进行筛选,最终获取符合条件的序列ne...

2022-01-17 19:29:26 722

原创 R语言实验二矩阵和数组

1、创建1.1 利用array函数,创建二维数组m1,每一行记录不同人(A,B,C)的各科成绩(math,english,physics),成绩请随意输入(要求每行至少有一个90分以上)m1<array(c(95,40,80,55,92,98,86,93,55), dim=c(3,3), dimnames=list(c('A','B','C'), c('math','english','physics')))m11.2 利用matrix函数,创.

2022-01-03 17:29:16 2027

原创 Bert预训练

Bert模型的目的:预训练Transformer的encoder网络,从而大幅提高准确率1、预测遮挡单词:随机遮挡一个词或多个词,让encoder根据上下文来预测被遮挡的单词2、预测下一个句子:把两个句子放在一起,让encoder判断是否是原文中相邻的两个句子...

2022-01-02 21:48:28 6507

原创 R语言实验一向量

1、创建1.1.1 请利用c函数,输入5门专业课程的名称,组成向量nms。names <- c('语文','数学','英语','历史','物理')print(names)1.1.2 请利用vector函数初始化score向量,记录问题1中5门专业课程的成绩。score <- vector(mode='numeric',length=5)score <- c(85,90,95,75,80)score1.1.3 请创建一向量grade,用逻辑值表示问题1中

2021-12-29 13:39:45 1509

原创 Transformer

Transformer不是循环神经网络,没有循环结构,它也是一种seq2seq模型,主要依赖attention现在的机器翻译一般都用Transformer+bertattention 中有三个参数矩阵 Wk,Wq,Wv【encoder中有Wk,Wv】【decoder中有Wq】值越大,说明q:j与K:i匹配程度越高权重(相关性系数)公式:系数公式:总结一下全过程:根据Sj,先算出q:j ,然后计算k:i(m个k向量,for i=1,2..m),将所...

2021-12-28 19:45:07 1325

原创 attention与self-attention

因为seq2seq模型容易遗忘掉部分信息,引入attention模型,它可以大幅度提高seq2eq模型下图横轴是输入得句子长度,纵轴是模型评价值,BLEU越高说明翻译越准确,可以看到,当字数很长时,翻译得准确率就会降低优点:在attention的机制下,decoder每次更新状态时都会看一眼encoder的所有状态向量避免遗忘,attention还会告诉decoder应该关注哪一个状态(这也是名字的由来)缺电:计算量非常大过程:在encoder输入完最后一个状态向量hm时,de

2021-12-25 21:44:59 888

原创 文本生成与机器翻译

自然语言处理开始形成“基于规则”和“基于统计”的两大阵营基于统计代表:以LSA/PLSA/LDA为代表的先验概率模型 以HMM/CRF为代表的条件概率模型文本预处理主要环节: ◆文本处理的基本方法:分词、命名实体识别、词性标注 ◆词向量表示方法 ◆文本语料的数据分析 ...

2021-12-25 18:34:57 919

原创 流水调度作业问题【回溯】

首先需要明确,流水调度作业问题最佳算法应该是用贪心,这里先介绍回溯再介绍贪心【问题描述】有n个作业(编号为1~n)要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi (1≤i≤n) 。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。可以假定任何作业一旦开始加工,就不允许被中断,直到该作业被完成,即非优先调度。.

2021-12-20 00:37:34 2806 1

原创 LSTM模型

LSTM比RNN复杂很多,RNN只有一个参数矩阵A,LSTM有4个(遗忘门,输入门,更新值,输出门)LSTM有一个非常重要的传输带Ct,过去的信息通过这个传输带送给下一时刻,不会发生太大变化,并且通过这个传输带避免梯度消失的问题LSTM有很多门让信息有选择的通过遗忘门:将a向量待入sigmod函数得到相对应的f值,然后将这个f值与c传输带相乘得到output,当的值为0时,output也会相应的等于0,那么该条信息就不通过,当值为1时,output输出c本身,该条信...

2021-12-08 20:48:29 10797

原创 Simple RNN模型

适用于:小规模数据集如何对序列数据进行建模?-----> RNN(many to one/many to many)模型我们知道,将一段文字整体输入逻辑斯蒂回归模型时,是属于一对一(one to one)模型,一个输入对应一个输出,这种一对一模型非常适合图片类数据,但不太适合文本数据

2021-12-08 17:38:11 1896 1

原创 R语言之可视化1

导入vcd包,不过暂时不用它画图,我们只是需要vcd包中的Arthritis数据集简单的条形图条形图通过垂直的或水平的条形展示了类别型变量的分布(频数),函数barplot ()的最简单用法是:barplot (height),其中的height是一个向量或一个矩阵。向量载入我们要用到的数据,在关节炎研究中,变量Improved记录了对每位接受了安慰剂或药物治疗的病人的治疗结果:library(vcd)counts<-table(Arthritis$Improved)coun

2021-12-07 17:04:35 3308

原创 【回溯法】简单装载问题与复杂装载问题

[问题描述]有n个集装箱要装上一艘载重量为W的轮船,其中集装箱i ( 1≤i≤n)的重量为wi。不考虑集装箱的体积限制,现要这些集装箱中选出若干装上轮船, 使它们的重量之和等于W ,当总重量相同时要求选取的集装箱个数尽可能少。对于第i层的某个分枝结点,对应的调用状态是dfs (num, tw, rw, op,i) ,对应的扩展结点有2个:●选择第i个➢op[i]=1 , num=num+1, tw=tw+w[i], rw=rw-w[i],转到下一个状态dfs(num, tw, rw,op..

2021-11-23 17:49:27 15796 7

原创 R语言之lubridate包的使用

2021-11-20 15:34:43 1360

原创 判断一个数是不是完全平方数的巧妙方法(不用库函数)

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。不要 使用任何内置的库函数,如sqrt示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false妙解完全平方数可以通过累加从1往后的奇数找到,1 = 1;4 = 1 + 3;9 = 1 + 3 + 5;16 = 1 + 3 + 5 + 7;25 =1 + 3 + 5 + 7 + 9;......

2021-11-14 23:03:21 1821 2

原创 【动态规划】leetCode309.买卖股票时机含冷冻期 C语言版

给定一个整数数组,其中第i个元素代表了第i天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]dp[i]表示第i天可以获得的最大股票利润,为什么用二维数组表示状态呢,因...

2021-11-11 17:38:31 195

原创 【回溯法】n皇后问题并输出每种解的情况 C语言版

问题描述:在n×n的方格棋盘上,放置n个皇后,要求n个皇后两两不在一行,不在一列,不在同一对角线上PS:行不用检测,因为皇后本身就是一行一行往下放的,并且一行只能放一个,所以当放好一个皇后后,只需检测列及对角线的位置有无皇后,如下图这些位置思路 【回溯法】1. 从棋盘的第一行开始,依次遍历所有位置,依次判断当前位置是否能够放置皇后,判断的依据为:同该行之前的所有行中皇后的所在位置进行比较,是否在同一列,或者在同一条斜线上(斜线有两条,为正方形的两个对角线)。...

2021-11-09 21:49:34 5263 1

原创 【数据结构】链栈相关算法总结

1. 假设用I、O表示入栈和出栈操作,栈的初态和终态都为空时合法,设计一个算法判断是否合法区分:判断带头节点的栈空:lst->next=NULL判断不带头节点的栈空: lst=NULL代码int judge(char a[],int n) { //n为元素个数 int i; LiStack *lst; InitStack(LiStack *&lst); //先初始化栈 for(i=0;i<n;i++){ if(A[i]=='I') pu...

2021-11-09 15:39:01 623

原创 【数据结构】详解栈的应用之表达式求值

首先明白:前缀表达式:符号在前,如+ab中缀表达式:符号在中间,如a*b后缀表达式:符号在最后,如ab-举例:求5+7*3*(2+1)思路:准备两个栈,将所有的数字放入左栈,所有的符号放入右栈中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。(删除)5.遇到其他运算符:加减乘除:弹出所有优先

2021-11-04 16:24:58 11209 10

原创 【剑指 Offer 】11. 旋转数组的最小数字(详细思路+图解+代码)

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0思路如下图所示,寻找旋转数组的最小元素即为寻找右排序数组的首个元素nums[x],称x为旋转点。算法流程1.初始化: 声明 ii, jj...

2021-11-03 21:41:52 120

原创 【动态规划】leetCode746.使用最小花费爬楼梯(使用滚动数组优化空间)

数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:输入:...

2021-11-03 20:12:26 243

原创 【leetCode】169. 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2思路:首先请考虑最基本的摩尔投票问题,找出一组数字序列中出现次数大于总数1/2的数字(并且假设这个数字一定存在),显然这个数字只可能有一个。摩尔投票算法是基于这个事实:每次从序列里选择两个不相同的数字删除掉(或称为“抵消”)...

2021-11-02 18:48:02 142

原创 C语言.按位与运算符【leetCode】191. 位1的个数

原理:每执行一次x & (x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。因此,对 x 重复该操作,直到 x 变成 0,则操作次数即为 x 的二进制数中的 1 的数目。用11举例子:例如:求一个数转换成二进制后有多少个1int hammingWeight(uint32_t n) { int count = 0; while (n) { n &= n - 1;...

2021-11-02 17:13:56 316

原创 【leetCode】500. 键盘行

给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 "qwertyuiop" 组成。第二行由字符 "asdfghjkl" 组成。第三行由字符 "zxcvbnm" 组成。示例 1:输入:words = ["Hello","Alaska","Dad","Peace"]输出:["Alaska","Dad"]示例 2:输入:words = ["omk"]输出:[]示例 3:输入:words.

2021-10-31 23:12:52 135

原创 【洛谷入门】P1548 [NOIP1997 普及组] 棋盘问题

题目描述设有一个N×M方格的棋盘(1≤N≤100,1≤M≤100)求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。例如:当N=2, M=3时:正方形的个数有8个:即边长为11的正方形有6个;边长为2的正方形有2个。长方形的个数有10个:即2×1的长方形有4个1×2的长方形有3个:3×1的长方形有2个:3×2的长方形有1个:如上例:输入:2,3输出:8,10输入格式N,M输出格式正方形的个数与长方...

2021-10-26 23:35:27 575

原创 【洛谷入门】P7659 [COCI2014-2015#5] FUNGHI

题目描述Hansel 和 Gretel 得到了一块分成88片的披萨,每片上面有不同数量的蘑菇,表示为S_1,S_2,...,S_8S1​,S2​,...,S8​。Gretel 很喜欢蘑菇,她想要找到连续的四片披萨使得上面的蘑菇最多。输入格式一共88行,每行一个正整数S_iSi​(ii为行数),表示披萨片上的蘑菇数。输出格式一行一个正整数,表示连续的四片披萨上最多有几个蘑菇。输入输出样例输入 #1复制52145123输出 #1复制12...

2021-10-26 21:26:30 245

原创 【洛谷入门】P1739 表达式括号匹配

题目描述假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。输入格式一行:表达式输出格式一行:“YES” 或“NO”输入输出样例输入 #1复制2*(x+y)/(1-x)@输出 #1复制YES输入 #2复制(25+x)*(a*(a+b+b)@输出 #2复制

2021-10-26 21:24:24 2434

原创 【动态规划C语言】编辑距离问题 原理+代码

【问题描述】设A和B是两个字符串,要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的两个字符串A和B,计算出它们的编辑距离dp(A,B)。图解如下:第1行:空字符串需要经过多少次变换才可以变成另一个空字符串,显然是0,所以第一空是0空字符串需要经过多少次变换才可以变成字符串

2021-10-19 21:39:49 1341

原创 【动态规划C语言】求解最长公共子序列问题(并输出该序列)原理+代码

子序列:给定一个序列X=<x1,x2,x3,x4...,xm>,另一个序列Z=<z1,z2,z3,z4...,zk>,若存在一个严格递增的X的下标序列<i1,i2,i3,...,ik>对所有的1,2,3,...,k,都满足x(ik)=zk,则称Z是X的子序列(不一定要连续但顺序必须相同)那么如何由dp求出LCS呢?(1)当元素值等于上方相邻元素值时i-1,即dp[i][j]=dp[i-1][j](2)当元素值等于左方相邻元素值时j-1,即dp[i][j]=

2021-10-19 21:02:57 1875

原创 【动态规划C语言】求解整数拆分问题 原理+代码

原理设f(n,k)为将整数n无序拆分成最多不超过k个数之和的方案个数根据n和k的关系,考虑下面几种情况:(1)当n=1时,不论k的值为多少(k>0),只有一种拆分,即{1}; 显然 f(n,k)=1(2)当k=1时,不论n的值为多少(n>0),只有一种拆分,即{1,1,....1,1,1}; 显然 f(n,k)=1(3)当n=k时,根据拆分中是否包含n,可以分为两种情况: 1.拆分中包含n的情况,只有一个,即{n}; ...

2021-10-19 14:44:55 5180 1

空空如也

空空如也

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

TA关注的人

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