自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 信息论随笔(三)交互信息量

之前讨论了一个事件的自信息量,但是实际情况下往往有多个事件发生,而且这些事件之间相互是有联系的。也就是说,我们可以通过一个事件获得另外一个事件的信息,或者说,消除另外一个事件的不确定性。这个式子可以从系统的整体来看,系统的信息量的变化等于事件A的自信息量加上事件B的自信息量减去事件A和事件B同时发生的信息量。考虑事件A和事件B,它们发生的概率分别是P(a)和P(b)。上式表明了事件A从事件B中获得的信息量与事件B从事件A中获得的信息量是相同的,交互信息量是对称的。,该式子等于事件B从事件A中获得的信息量。

2022-11-19 11:57:11 522 1

原创 信息论随笔(二)信息熵及其性质

信息熵及其性质

2022-11-16 14:00:00 1150

原创 信息论随笔(一)自信息量

发生概率为10^-6的事件信息量为10^6-1,而发生概率为10^6的事件信息量为10^-6-1,相差12个量级。而且这种方式也满足了当概率为1,信息量为0的条件。如果以10为底的话,那么发生概率为10^-6的事件信息量为6哈特,而发生概率为10^6的事件信息量为-6哈特。可以把2,e或者10作为底,那么信息量的单位分别为比特,奈特,哈特。直觉上看,一件事情发生的概率越小,消除的不确定性越多,信息量越大。反之,一件事情发生的概率越大,信息量越小,比如1+1=2,没有消除任何不确定性,因此信息量为0。

2022-10-20 20:19:39 1153

原创 python爬虫入门学习

1.什么是爬虫?爬虫是一种自动化程序,可以批量对指定网页发送请求并得到数据。2.爬虫流程1)对网页发送请求并获得网页响应①使用urllib.request中的urlopen方法得到http.client.HTTPResponse对象②使用read方法和decode方法进行进一步处理或者①使用requests库中get方法得到requests.Response对象r(需pip install requests)②r的属性包括网页二进制内容content,以及文本格式内容text

2022-04-13 10:52:38 549

原创 同步,互斥与异步

1.同步是什么?同步是指,一个任务执行完并得出结果后才能执行下一个任务。同步保证了一致性,但一定程度上损失了性能。2.互斥是什么?互斥是指,由于资源的限制,不同任务不能同时执行。3.异步是什么?和同步相反,异步是指,不需要上一个任务执行得出结果就可以执行下一个任务。如多个任务是独立进行的,可使用异步的方式执行这些任务,提高性能。可使用回调函数得到结果。...

2022-03-29 13:02:01 598

原创 python中的堆heapq

1.什么是堆?堆是一种非线性数据结构,其中二叉堆是一颗完全二叉树,可以用数组实现。大顶堆每个节点的值都不小于它的孩子节点的值。小顶堆则相反。完全二叉树 - wulongming88 - 博客园2.python中的标准库模块heapq1)创建堆①使用空列表初始化堆,并使用heapq.heappush向堆添加元素import heapqheap = []heapq.heappush(heap, 0) ②使用heapify将列表转化为堆elements = [0]heap

2022-03-15 10:36:54 1712

原创 leetcode动态规划(二)70+746

1.70爬楼梯1)状态转移方程从第1个台阶到第n个台阶的方式:①从第1个台阶到第n-2个台阶,再从第n-2个台阶到第n个台阶②从第1个台阶到第n-1个台阶,再从第n-1个台阶到第n个台阶M(n)=M(n-2)+M(n-1)2)边界条件M(1)=1,M(2)=23)python代码class Solution: def climbStairs(self, n: int) -> int: if n <= 2: return

2022-03-10 09:00:00 87

原创 leetcode动态规划(一)509+1137

1.509斐波那契数-简单1)状态转移方程F(n)=F(n−1)+F(n−2)2)边界条件F(0)=0,F(1)=13)复杂度时间复杂度:O(n)空间复杂度:O(1)2.1137第N个泰波那契数-简单1)状态转移方程Tn+3 = Tn + Tn+1 + Tn+2(n>=0)2)边界条件T0 = 0, T1 = 1, T2 = 13)复杂度时间复杂度:O(n)空间复杂度:O(1)4)python代码class Solution:

2022-03-09 21:06:56 400

原创 leetcode数据库刷题(四)

1.601体育馆的人流量-困难1)使用lead和lag2)id-row_number2.620有趣的电影-简单select * from cinema where description<>'boring'and id%2<>0order by rating desc3.626换座位-中等1)case2)位操作3)lag和lead4.627变更性别update Salary set sex = case sex when "m"

2022-03-05 12:09:18 190

原创 leetcode数据库刷题(三)

2022-03-04 12:58:35 348

原创 leetcode数据库刷题(二)

2022-03-04 09:00:00 82

原创 leetcode数据库刷题(一)

1.175组合两个表-简单使用outter join,获得两个表的并集。outter join包括left join和right join。left join表示左侧表所有记录都将返回,并且不满足匹配条件的右侧连接表记录将返回null。mysql中inner join和outer join有什么区别? - 简书2. 176第二高的薪水-中等先排序再使用limit子句。limit子句有两个参数,offset和count。offset表示返回的第一行的偏移量。count表示返回行数。M.

2022-03-03 14:55:45 343

原创 leetcode206反转链表

1.题目描述力扣2.难度-简单 3.思路1)暴力法第1轮循环:链表第1个结点和第2至n个结点依次交换位置,使第1个结点成为最后一个结点。第2轮循环:链表第1个结点和第2至n-1个结点依次交换位置,使第1个结点(链表原第2个结点)成为第n-1个结点。以此类推,可将链表反转。时间复杂度:O(n^2)空间复杂度:O(1)2)递归法①递归过程反转除第一个结点之外的所有结点并得到新的头结点;将第一个结点的下一个结点的下一个结点设置为第一个结点(由第一个结点指向第二个结点

2022-03-02 16:05:48 379

原创 python修饰器

1.修饰器是什么?修饰器是一种以函数为参数,为该函数添加某种功能,并返回新函数的函数。2.修饰器如何定义?1)在修饰器函数内定义wrapper函数,并将wrapper的docstring和name设置成和原函数一样2)使用functools.wraps(function),可省去1)中后一步骤2.修饰器如何用?1)定义修饰器函数decorator,调用decorator(function)2)在function定义前添加@decorator3.修饰器参数化在修饰器函数外包

2022-02-22 17:21:47 4413

原创 python继承

1.继承是什么?继承指为了提高代码的复用性,在已有类的基础上创造新的类。新的类继承已有类的方法和属性,并按需求添加新的方法和属性。2.python中子类如何继承父类?在子类的初始化函数中使用super函数可以继承父类的所有方法和属性。若在子类中定义了和父类同名的方法,将会覆盖父类中的方法。3.其他细节python中可以使用isinstance函数判断变量是否为某个类或数据类型。调用方法时,python中先查找子类中是否有此方法,若找不到,会在父类中寻找。4.参考资料Pytho

2022-02-22 16:46:50 506

原创 搜索引擎(二)网页排名算法(1)PageRank

1.算法思想网页的权重PR(u)等于所有入链网页权重之和∑PR(v)除以入链网页对应的出链数量L(v)。网页v到网页u的转移概率则为网页v的权重PR(v)。2.随机游走模型1)阻尼因子为了解决网页只有出链或者只有入链而导致的网页权重为0的问题,随机游走模型设置了阻尼因子,阻尼因子模拟了用户通过链接继续点击网页的概率,默认值为0.85。最终计算网页权重的公式如下图,d为阻尼因子,N为页面总数。2)PageRank计算方法①幂迭代法转移矩阵A和随机赋值的网页初始权重P0不

2022-02-20 18:20:20 1348

原创 搜索引擎(一)原理

1.搜集网页给爬虫一组优质种子网页的链接,爬取这些网页链接到的其他网页。使用布隆过滤器避免重复爬取网页。2.对网页进行预处理并对网页建立索引去除html标签,留下网页内容。去除网页内容中的停用词后,将网页内容分词并建立倒排索引,倒排索引指key为单词,value为该单词出现过的所有网页id。3.对网页进行排名谷歌使用了PageRank算法对网页进行排名。4.用户查询用户输入搜索内容后,搜索引擎对其进行分词,从索引中找到相应网页,并按权重大小排列网页。5.参考资料搜索引擎背

2022-02-18 17:43:20 351

原创 python数据结构

1.数据结构是什么?数据结构是指相互之间存在一定关系的数据元素的集合,如数据元素有序排列,则形成线性结构。数据元素是数据的基本单元,也被称为结点或者记录。2.python数据结构有哪些?1)列表list列表类似C语言中的数组,其中元素可以按索引访问。但不同的是,列表可以存放python中的任意对象,且能混放不同类型的对象。除此之外,列表定义后可以收缩长度。列表可以作为栈或队列使用。列表可以嵌套,形成多维数组的结构,但通常使用numpy包提供的多维数组ndarray,因为其功能强大。

2022-02-17 11:21:40 3977

原创 用户态和内核态

1.用户态是什么?当进程执行用户程序时,进程处于用户态。在用户态下,只能执行非特权指令。2.内核态是什么?1)内核是什么?内核是通过系统调用,为用户应用程序提供对计算机系统资源的安全访问的系统软件,是操作系统的一部分,负责系统的进程管理、内存管理、文件管理、网络管理和进程间通信。2)内核态是什么?当进程陷入内核代码中执行,进程处于内核态。内核态是一种CPU的特权态,在此状态下,可以执行用户态下不允许执行的特权指令。3.用户态如何转换到内核态?1)系统调用(软中断)为了调用

2022-02-16 10:57:31 676

原创 进程间通信方式(四)消息队列

1.消息队列是什么?2.消息队列如何使用?3.消息队列优缺点4.参考资料

2022-02-16 09:00:00 197

原创 进程间通信方式(三)共享内存

1.共享内存是什么?2.共享内存如何使用?3.共享内存优缺点4.参考资料

2022-02-15 16:03:53 479

原创 进程间通信方式(二)信号量学习笔记

1.信号量是什么?信号量是一种实现进程间的互斥和同步的机制,基于两个原子操作P和V。1)二进制信号量二进制二信号量只能取0或1。取0通常表示资源当前不可用,而取1表示资源可用。2)计数信号量计数信号量取值可以是多个正整数。信号量初值通常为资源数目,使用资源前执行P操作,资源计数减一,资源使用完毕后执行V操作,资源计数加一。2.如何使用信号量?1)创建信号组int semget(key_t key, int num_sems, int sem_flags);semget(2

2022-02-15 09:00:00 326

原创 进程间通信方式(一)通道(pipe)学习笔记

1.通道是什么?通道是两个进程之间进行通信的一种方式,操作形式上是文件,本质上是内存缓冲区。2.如何创建通道?①使用命令行创建通道1)创建匿名通道shell命令中“|”可以形成进程间的匿名通道。前一个进程的输出可以被后一个进程读入。该方法只适用于本地具有亲缘关系的进程之间的通信。2)创建命名通道使用mkfifo或mknod命令创建。mknod(2): create special/ordinary file - Linux man pagemkfifo(3) - Lin.

2022-02-14 15:44:39 725

转载 leetcode188买卖股票的时机Ⅳ

难度:困难题目描述:力扣思路:动态规划1)定义状态buy[i][j]:到第i天,进行j笔交易,并且持有一支股票的最大利润;sell[i][j]:到第i天,进行j笔交易,并且手上不持有股票的最大利润。2)状态转移方程第i-1天持有股票,或者第i-1天不持有股票,第i天买入。buy[i][j]=max{buy[i−1][j],sell[i−1][j]−price[i]}第i-1天不持有股票,或者第i-1天持有股票,第i天卖出。sell[i][j]=max{sell[i−1

2022-02-14 14:41:48 48

转载 leetcode123买卖股票的时机III

难度:困难题目描述力扣​​​​​​思路 动态规划代码

2022-02-11 11:09:06 76

原创 leetcode122买卖股票的时机II

难度:中等题目描述力扣思路情况一:股票一直上涨,用最后一天的价格减去第一天的价格即为最大利润。情况二:股票价格波动,找到所有未来价格和过去价格的差值之和。情况三:股票一直下跌,利润为0。寻找每次上升波动的价格最高点和最低点。代码...

2022-02-09 11:12:00 265

原创 leetcode121买卖股票的时机

难度:简单题目描述力扣思路找到股票未来价格减去过去价格的最大差值,即为最大利润,若未来价格始终小于过去价格,则利润为0。代码1.穷举法class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in range(len(prices)): for j in range(i+1,len(prices)): ..

2022-01-17 10:45:32 119

原创 (二)关系数据库

2022-01-11 12:29:34 291

原创 (一)绪论

数据库系统概论学习笔记(一)绪论

2022-01-08 19:38:22 124

转载 python读取、写入文件(不全)

python能够打开的文件类型有:txt,xlsx,csv,zip,json,xml,html,images,hdf,pdf,docx,mp3,mp41.txt文件f=open(filepath,'r')或with open(filepath,'r')或codecs.open()或io.open()lines=f.read()或for line in f.read()或f.readli...

2019-05-17 00:07:12 4819

原创 weka下载安装

weka是一款基于java环境的开源的机器学习和数据挖掘软件,因此必须要在电脑上先安装java1.安装javahttps://www.java.com/zh_CN/配置java环境变量增加环境变量:名称JAVA_HOME,值为java安装路径。如C:\Program Files\Java\jdk_1.8.0_201path中增加%JAVA_HOME%\binclasspat...

2019-04-25 14:12:17 8697

原创 windows10安装elasticsearch

1.安装JDKelasticsearch最新版本至少需要java8的环境(有些旧版本的elasticsearch可以用java7环境)到Oracle java官方网站下载或是下载OpenJDK均可https://www.java.com/zh_CN/(Oracle java官方网站)安装完成后需要配置java的环境变量增加环境变量:名称JAVA_HOME,值为java...

2019-04-24 12:26:56 389

原创 如何下载安装weka包

1.使用weka tools中自带的package manager2.网上下载压缩包并使用weka的unofficial package installhttps://sourceforge.net/projects/weka/files/weka-packages/之后选择下载的压缩包即可。重新打开weka即可看到新安装的包的功能。    ...

2019-01-06 15:28:10 3646

空空如也

空空如也

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

TA关注的人

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