自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2 网络爬虫基础

2 网络爬虫基础2.1 HTTP超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图

2021-08-03 21:28:42 268 2

原创 1 网络爬虫概述

1 网络爬虫概述1.1 理解数据1.11什么是数据“所有的数字都是数据”“图片、字母、文字等都是数据”没错,只要承载了一定的信息,这些数字、图片、文本、声音等都可以认为是数据。没有承载信息的数字是不能作为数据的,认识清楚这个问题,是踏入大数据之门的第一步。1.12数据从哪里来从微观层面看,我们每个人都在生产着数据:早上8点,你使用支付宝购买了早餐;上午10点,你给100086打一次电话咨询话费余额;下午六点,你乘坐的公共交返回家中。然后,支付宝获取了你的使用习惯和消费能力,时时向你推荐花呗等应

2021-08-03 21:25:08 503 1

原创 猫狗识别基于tensorflow2.0 GPU版 自建CNN模型+数据增强+Dropout

基于tensorflow2.0 GPU版 自建CNN模型+数据增强+Dropout1. 导入库from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Densefrom tensorflow.keras.models import Sequential, load_modelfrom tensorflow.keras import optimizersfrom tensorflow.keras.preprocessing

2021-06-01 17:37:49 634 1

原创 猫狗识别基于tensorflow2.0 GPU版 自建CNN模型

基于tensorflow2.0 GPU版 自建CNN模型1. 导入库import tensorflow as tffrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Densefrom tensorflow.keras.models import Sequential, load_modelfrom tensorflow.keras import optimizersfrom tensorflow.keras.pr

2021-06-01 17:34:29 796 1

原创 基于 tensorflow2.4 斑马线识别

基于 tensorflow2.4 斑马线识别通过斑马线图片数据集,实现斑马线的识别,准确率最终可到97%1. 数据集查看为了后面的使用方便,直接将数据集划分好,划分为训练集和验证集每个文件夹中有属于斑马线的文件和不属于斑马线的文件图片样式如下图片格式如下2.代码第一步就是老生常谈的导入相应的第三方库from tensorflow.keras.layers import Conv2D,MaxPooling2D,Flatten,Denseimport tensorflow as tf

2021-05-23 12:11:40 1548 12

原创 快速排序

快速排序快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的中间数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序

2021-05-11 21:55:13 176

原创 合并排序

合并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。例有8个数据需要排序:10 4 6 3 8 2 5 7归并排序主要分两大步:分解、合并。合并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1;否则将第二

2021-05-11 21:54:12 145

原创 二分搜索

二分搜索问题描述:给一个长度为n的单调递增的正整数序列,即序列中每一个数都比前一个数大。有m个询问,每次询问一个x,问序列中最后一个小于等于x的数是什么?输入:第一行两个整数n,m。接下来一行n个数,表示这个序列。接下来m行每行一个数,表示一个询问。输出:输出共m行,表示序列中最后一个小于等于x的数是什么。假如没有输出-1。样例输入:5 31 2 3 4 6513样例输出:413分析我们用Left表示询问区间的左边界,用Right表示询问区间的右边界,[Left,R

2021-05-11 21:52:31 192

原创 数据结构与算法之分治算法

数据结构与算法之分治算法基本概念在求解一个输入规模为n,而n的取值又很大的问题时,直接求解往往非常困难。这时,可以先分析问题本身所具有的某些特性,然后从这些特性出发,选择某些适当的设计策略来求解。这种方法,就是所谓的分治法。在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序)

2021-05-11 21:50:00 209

原创 乘船问题

乘船问题有n个人,第i个人重量wi,每艘船的载重量均为C,最多可乘2人。求用多少船装载所有人的方案。贪心策略:最轻的人与最重的人配对。题目有n个人,第i个人重量为wi,每艘船的最大载重量为C,且最多只能乘两个人。用最少的船装载所有人。题目保证有解。【样例输入1】65 84 85 80 84 8385【样例输出1】5【样例输入2】390 45 6090【样例输出2】3【样例输入3】550 50 90 40 60100【样例输出3】3分析从最轻的人i开始考虑:如果

2021-05-02 22:39:24 3266

原创 部分背包问题

部分背包问题**有n个物体,第i个物体的重量为wi,价值为vi,在总重量不超过C的情况下总价值尽量高,每个物体可以只去一部分,价值和重量按比例计算。贪心策略:先选性价比高的**题目有n个物体,第i个物体的重量为wi,价值为vi(wi, vi均为正整数)。在总重量不超过C的情况下让总价值尽量高。每一个物体都可以只取走一部分,价值和重量按比例计算。分析这里在选择物品i装入背包时,可以选择物品的一部分,而不一定要全部装入背包。一种直观的贪心策略是:引入“价重比”(价值/重量)这一概念,优先拿价重比

2021-05-02 22:38:21 562

原创 最优装箱问题

最优装箱问题给n个物体,第i个物体重量为wi,选择尽量多的物体,使得总量不超过C。贪心策略:先装最轻的。(不一定得到全局最优解)题目有n个物体,第i个物体的重量为wi(wi为正整数)。选择尽量多的物体,使得总重量不超过C。分析由于只关心选择的物品的最大数量(而不是最大重量,最大重量需要考虑DP),所以装重的物体没有装轻的物体划算。这里只需对n个物体按重量递增排序,依次选择每个物体直到装不下为止。这是一种典型的贪心算法,它只顾眼前,却能得到最优解。代码#include <iostrea

2021-05-02 22:36:57 1459

原创 数据结构与算法之贪心算法

数据结构与算法之贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心基本要素贪心选择贪心选择是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。贪

2021-05-02 22:35:43 254

原创 哈密尔顿回路(旅行售货员问题)

哈密尔顿回路(旅行售货员问题)哈密顿图(哈密尔顿图)(英语:Hamiltonian path,或Traceable path)是一个无向图,由天文学家哈密顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过一次。在图论中是指含有哈密顿回路的图,闭合的哈密顿路径称作哈密顿回路(Hamiltonian cycle),含有图中所有顶点的路径称作哈密顿路径。由来天文学家哈密顿(William Rowan Hamilton) 提出,在一个有多个城市的地图网络中,寻找一条从给定的起点到给定的终点沿

2021-04-22 20:03:40 1922

原创 数的划分问题

数的划分问题问题将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。【输入格式】n,k (6<n≤200,2≤k≤6)【输出格式】一个整数,即不同的分法。【输入样例】7 3【输出样例】4{ 4种分法为:1,1,5;1,2,4;1,3,3; 2,2,3 说明部分不必输出 }回溯法#include<cstdio

2021-04-22 20:01:42 411

原创 搜索与回溯算法之八皇后问题

搜索与回溯算法之八皇后问题问题要在国际象棋棋盘中放八个皇后,使任意两个皇后都不能互相吃。(提示:皇后能吃同一行、同一列、同一对角线的任意棋子。)放置第i个(行)皇后的算法为:int search(i); {   int j;   for (第i个皇后的位置j=1;j<=8;j++ ) //在本行的8列中去试   if (本行本列允许放置皇后)    {     放置第i个皇后;对放置皇后的位置进行标记;     if (i==8) 输出

2021-04-22 19:59:03 1448

原创 经典素数环问题

经典素数环问题问题素数环:从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数。分析非常明显,这是一道回溯的题目。从1开始,每个空位有20种可能,只要填进去的数合法:与前面的数不相同;与左边相邻的数的和是一个素数。第20个数还要判断和第1个数的和是否素数。流程1、数据初始化;2、递归填数:判断第i个数填入是否合法;A、如果合法:填数;判断是否到达目标(20个已填完):是,打印结果;不是,递归填下一个;B、如果不合法:选择下一种可能;代码#include<cstdio&g

2021-04-22 19:57:33 858

原创 数据结构与算法之搜索与回溯算法

数据结构与算法之搜索与回溯算法搜索原理搜索算法实际上是根据初始条件和扩展规则构造一棵“解答树”并寻找符合目标状态的节点的过程。所有的搜索算法从最终的算法实现上来看,都可以划分成两个部分——控制结构(扩展节点的方式)和产生系统(扩展节点),而所有的算法优化和改进主要都是通过修改其控制结构来完成的。其实,在这样的思考过程中,我们已经不知不觉地将一个具体的问题抽象成了一个图论的模型——树,即搜索算法的使用第一步在于搜索树的建立。由图一可以知道,这样形成的一棵树叫搜索树。初始状态对应着根节点,目标状态对应着目

2021-04-22 19:55:14 1412

原创 基于Echarts的鸢尾花数据可视化

基于Echarts的鸢尾花数据可视化打开工具HbuilderX,选择新建项目-普通项目-基本HTML项目;在index.html页面的< head >和标签之间引入echarts.min.js和d3.min.js,注意需在对应的位置创建相关文件夹。代码如下所示;<head> <meta charset="utf-8"> <title>鸢尾花数据可视化</title> <script src="echarts/echarts.min

2021-04-20 15:37:01 1432

原创 数据结构与算法之递归算法

数据结构与算法之递归算法递归概念所谓递归,简单点来说,就是一个函数直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。(摘自知乎的一个回答)

2021-04-13 20:48:17 713

原创 数据结构与算法之倒推算法

数据结构与算法之倒推算法倒推算法概念所谓的倒推法(Inverted Recursion)是对某些特殊问题所采用的违反通常习惯的,从后向前推解问题的方法。在不知前提条件的情况下,经过从后向前递推,来求解问题的初始数据,即由结果倒过来推解它的前提条件。另外在对一些进行分析或建立数学模型时,从前向后分析问题感到比较棘手,而采用倒推法,则问题很容易理解和解决。回文日期问题:在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2

2021-04-11 20:12:22 2305

原创 数据结构与算法之递推算法

数据结构与算法之递推算法递推算法概念递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。递推算法的首要问题是得到相邻的

2021-04-11 20:08:02 856

原创 数据结构与算法之迭代算法

数据结构与算法之迭代算法迭代算法的基本概念定义:迭代法(Iteration)也称为“碾转法”,是一种不断用变量的旧值递推出新值的解决问题的一种方法。迭代算法一般用于数值计算。迭代法应该是早已熟悉的算法策略。设计要点利用迭代算法策略求解问题,设计工作主要3步:1)确定迭代模型根据问题的描述,分析得出前一个(或几个)值与其下一个值的迭代关系数学模型。当然这样的迭代关系,最终会迭代出解的目标。2)建立迭代关系递推数学模型一般是带下标的字母,算法设计中要将其转化为“循环不变式”----迭代关系式,

2021-04-11 20:00:41 4629

原创 数据结构与算法之蛮力(穷举)算法

数据结构与算法之蛮力(穷举)算法蛮力法是基于计算机运算速度快这一特性,在解决问题时采用的一种“惰性”的策略。这种策略不经过(或者说是经过很少的)思考,把问题的所有情况或所有过程交给计算机去一一尝试,从中找出问题的解。蛮力算法的应用很广。枚举法(穷举法)是蛮力算法的一种,它对可能解的众多候选解按某种顺序逐一枚举和检验,并从中找出那些符合要求的候选解作为问题的解。这种方法简单易行,尤其是对于一时想不出更好的解法的问题,不失为一种补救的好方法。但是,这种方法只能解决变量个数有限,而且每个变量可取值个数也很有

2021-04-08 21:34:41 1322

原创 数据结构与算法之循环算法

数据结构与算法之循环算法循环算法基本概念我们借助计算机快速处理数据的功能,让计算机重复的加工计算,这就构成了循环算法,其关键在于构建循环条件和循环体。循环条件:每个循环有其循环的开始和结束的条件,否则死循环。循环体:每次循环执行的步骤、变量、代码形式一致,而变量内存的数据发生改变。基本的设计方法如下两种:“自顶向下”的循环算法设计方法自顶向下的设计方法是从全局走向局部、从策略走向详尽的设计方法。自顶向下是系统分解和细化的过程。首先,根据题意,总体规划设计算法的主要组成或步骤。其次,分别对各

2021-04-08 21:30:07 3654

原创 时空复杂度之珠心算测验

时空复杂度之珠心算测验问题珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练, 既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。【输入】输入文件名为 count.in。输入共两行,第一行包含一个整数 n,表示测试题中给出的正整数个

2021-04-07 20:59:46 152

原创 时空复杂度之质数问题

时空复杂度之质数问题题目有m组数据,每组数据有n个小于1000的正整数,分别求每组数据中所有素数的和。其中1<=m<=10;1<=n<=1000;方法一:#include<stdio.h>#include <stdlib.h> int main(){ int m,n; scanf("%d",&m); for(int i=1;i<=m;i++){ int sum=0; scanf("%d",&n); fo

2021-04-07 20:56:21 254

原创 时空复杂度简述

时空复杂度简述时间复杂度计算机的运行能力估计:做一个简单实验,让程序循环1亿次,10亿次看看需要多少时间。可以看出,一般电脑在1亿次可在1秒内完成,超过10亿次在1秒内难以完成。时间复杂度估算方法简单语句简单的赋值语句,读写语句,可以看作所用时间为常量记为O(1)。分支语句在分支语句中,以所耗费时间最多的那个分支来计算时间复杂度。循环语句在循环语句中,每循环1次记为O(1),循环n次时间复杂度为O(n)。嵌套循环在嵌套循环中,时间复杂度是多个循环的叠加,如下所示:n^2for(

2021-04-07 20:52:11 465

原创 图论基础

图论基础①图是一种由“顶点”组成的抽象网络,网络中的各顶点可以通过“边”实现彼此的连接,表示两顶点有关联。②顶点,表示某个事物或对象。③边,表示事物与事物之间的关系。④同构,不管顶点的位置在哪,边的粗细长短如何,只要不改变顶点代表的事物本身,不改变顶点之间的逻辑关系,那么就代表这些图拥有相同的信息,是同一个图。⑤有方向的是有向图、无方向的是无向图。⑥端点和邻接点,相邻的两个点。⑦度、入度和出度,指向点并且相连的线数量。⑧子图,包含于图。⑨路径和路径长度,一个点到另一个点所经过的线。⑩回路

2021-04-06 19:58:41 263 4

原创 ECharts可视化基础——折线图

ECharts可视化基础21.折线图的绘制根据折线图,做折线图的个性化展示。其中标记区域设置标记二个区域,1-3月和7-8月,线型为平滑曲线,绿色点线,填充曲线与x轴间区域为粉色。将图形与y轴间的空白边缘取消;对Y轴进行必要的缩放,使图形Y轴起始点不为0。分析此折线图所展示的数据趋势。<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>ECharts</

2021-04-06 14:44:19 720

原创 ECharts可视化基础——直角坐标系

ECharts可视化基础4直角坐标系的设置。直角坐标系的设置指的是网格,坐标轴和区域缩放的配置。网格(grid)控制直角坐标系的布局和大小,其常用配置有是否显示(show),网格的宽度和颜色(borderWidth、borderColor),网格的位置调整(left、top、right、bottom、width、height)。请根据配置项手册,尝试在之前散点图的基础上,让网格显示出来,宽度为10,颜色为红色,对left和top做一定程度的调整,了解其作用。直角坐标系的坐标轴可更改其位置,在相对的

2021-04-06 14:44:04 863

原创 ECharts可视化基础——散点图

ECharts可视化基础3散点图的实现。绘制运动员身高体重的散点图,分析身高与体重两变量的关系。所给的数据格式不符合echarts绘制散点图的格式要求。需在前端打印数据后对格式进行调整。实现散点图时需注意横纵坐标轴比例尺的缩放。在前端使用回调函数的功能,根据运动员的BMI值(BMI大于26算偏胖)对数据点的颜色和大小做区分处理。使用涟漪动画处理数据点,更改涟漪大小和触发方式。分析身高与体重两变量的关系。所给的数据格式不符合echarts绘制散点图的格式要求。需在前端打印数据后对格式进行调整。根据运动员

2021-04-06 14:43:23 2478

原创 ECharts可视化基础——柱状图

ECharts可视化基础1.ECharts可视化步骤ECharts可视化分为5步,分别为:①步骤1:引入echarts.js文件需在head标签内引入js文件,我们需要通过script标签中的scr属性来给外部脚本文件规定一个路径。②准备容器我们需要准备一个呈现图表的盒子,通常我们是在div标签内规定一个区域来呈现图表。③初始化ECharts实例对象我们在script标签内,通过echarts.init的方法实例化echarts对象,使用init中的document.getElementBy

2021-04-06 14:37:33 5961

原创 Jieba分词斗罗大陆

Jieba分词斗罗大陆1.相关包导入import jiebaimport numpy as npimport pandas as pd2.斗罗大陆词库导入dldlck = pd.read_csv('F:\\cqie3.2\\NLP\\斗罗大陆词 库.txt',encoding='gbk')Dldlck3.斗罗大陆文本导入with open('F:\\cqie3.2\\NLP\\斗罗大陆.txt',encoding='utf-8') as f: dldl = f.read()

2021-04-06 00:23:08 426

原创 JSP内置对象session

JSP内置对象session内容使用JSP内置对象session设定和取值。session1.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="listener.MyListener"%><html><head><title>Insert title here</title><

2021-04-01 21:38:13 110 1

原创 JSP内置对象response

JSP内置对象response内容使用JSP内置对象response重定向页面。test.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><html><head><title>Insert title here</title></head><body> <FO

2021-04-01 21:37:03 94 1

原创 JSP内置对象request

JSP内置对象request内容使用JSP内置对象request取画面的值。test.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><html><head><title>Insert title here</title></head><body> <FORM

2021-04-01 21:35:49 98

原创 JSP动作标签的使用

JSP动作标签的使用内容使用JSP动作标签设定JavaBean的属性,并将属性值显示在页面。java类User.javapackage model;public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.

2021-04-01 21:33:44 185

原创 JSP指令标签的使用

JSP指令标签的使用内容使用JSP指令标签设定画面的错误页面属性,当画面出错,跳转到错误画面。test.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%><html><head><title>Insert title here</title></h

2021-04-01 21:31:50 89

原创 使用JSP脚本元素

使用JSP脚本元素内容使用jsp页面脚本元素显示1到10的和与当前系统时间。<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><html><head><title>Insert title here</title></head><body>这是一个JSP页面<br>

2021-04-01 21:30:15 107

空空如也

空空如也

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

TA关注的人

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