自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GoldenSpace

小小G的起点

  • 博客(45)
  • 收藏
  • 关注

原创 使用网络中共享的打印机

使用网络中共享的打印机问题描述解决方案问题描述在计算机连接的网络中,存在共享的打印机,其中打印机的IP地址已知,如何使用该打印机?解决方案打开【控制面板】(可以在搜索栏直接查找)打开【设备和打印机】(查看小图标,或者搜索控制面板)点击【添加打印机】点击【我所需的打印机未列出】选择【使用TCP/IP地址或主机名添加打印机】输入打印机的IP地址,点击【下一步】(完成后就可以正常使用打印机了)在word文档等软件中直接打印,选择新添加的打印机...

2020-10-10 21:15:40 243

原创 【STMT】等价类划分法

文章目录等价类划分法题目解答等价类划分法等价类划分法是一种典型的黑盒测试方法,通过划分输入数据集来减少测试所需的用例,包括划分等价类和构造测试用例两个步骤:划分等价类划分等价类就是将输入数据集划分成若干个等价类子集,从每一个子集中选取少量代表性数据作为测试用例。在划分等价类时,必须保证同一个等价类中的所有输入数据对于揭示程序中的错误是等效的,使得测试代表值相当于测试其它所有值。输入等价类...

2019-06-11 22:40:44 1398 1

原创 【STMT】判定表法

文章目录判定表法12判定表法判定表(Desision table)用于表示和分析复杂的逻辑关系,描述了在不同条件(Condition)下执行的动作(Action)集合。判定表本质上就是真值表的扩展,每个条件由两种可能的赋值扩展到多种可能的赋值,并且可以通过将多值条件拆分成多个二值条件转为真值表。12...

2019-06-06 00:34:49 617

原创 【STMT】McCabe环路复杂度

文章目录McCabe环路复杂度独立路径题目解答McCabe环路复杂度McCabe环路复杂度用于度量程序逻辑复杂性,计算程序的基本独立路径数目,即确保所有语句至少执行一次的最小测试数量。McCabe环路复杂度需要先根据代码画出程序流程图,然后画出对应的程序控制流图,再通过以下三种方法计算:给定流图GGG的边数mmm,结点数nnn,那么环路复杂度V(G)=m−n+2V(G) = m - n ...

2019-05-27 01:09:34 3502 2

原创 【STMT】Halstead复杂度

文章目录Halstead复杂度题目解答Halstead复杂度Halstead复杂度度量是软件复杂性的难度度量元,用于在程序产生或设计完成之后估算软件的复杂性。Halstead复杂度度量基于程序中的操作符和操作数的数量,对操作符和操作数的不同选取将得到不同的结果。常见的操作符和操作数如下操作符:保留字、函数调用、运算符操作数:常数、常量、变量需要注意的是,声明变量的数据类型保留字可以不...

2019-05-26 23:19:49 1677

原创 【NLP】最小编辑距离

文章目录编辑距离思路Python代码编辑距离编辑距离又称Levenshtein距离,是指将一个字符串转为另一个字符串所需的字符编辑次数,包括以下三种操作:插入 - 在任意位置插入一个字符删除 - 将任意一个字符删除替换 - 将任意一个字符替换为另一个字符最小编辑距离是指将一个字符串转为另一个字符串所需的最少字符编辑次数。思路计算最小编辑距离需要用到动态规划。对于两个字符串AAA...

2019-03-27 21:48:14 855

原创 Android Studio 根据屏幕大小缩放图片

我想让APP的界面显示统一的视觉效果,但运行APP的手机屏幕尺寸有所不同,必须根据屏幕大小将图片按比例缩放,下面介绍一种实现方法。首先我发现改变图片大小只能缩小,不能放大,虽然不太清楚原因,但如果只需要调整一次图片大小,那么将宽高的初始值设置为可能的最大值就可以了。然后在初始化界面时获取屏幕大小DisplayMetrics metrics = new DisplayMetrics();ge...

2019-03-18 12:54:47 7528

原创 Jupyter Notebook使用Chrome浏览器打开显示空白页(2019.3)

最近需要用Jupyter Notebook做作业,结果安装好打开是空白页,网上推荐的方法都是换用Chrome浏览器,但我还是打不开,右键检查网页发现有报错。最后在Github找到了问题和解决方法,修改一个文件就可以了。因为我是用pip安装的,所以该文件在python的安装目录下,文件名为notebookapp.py,路径为\python\python\Lib\site-packages\not...

2019-03-15 17:48:21 1989 2

原创 Visual Studio 2017配置OpenGL开发环境(GLFW + GLAD)

这学期我开始学习计算机图形学,需要使用OpenGL,在这里简单记录如何在Visual Studio中配置OpenGL的开发环境,其中GLFW和GLAD的头文件和库见github仓库。GLFWOpenGL提供了图形渲染接口,而GLFW提供了窗口以及用户输入接口。因为我们在绘制图形之前要先创建一个用于显示的窗口,所以我们需要使用GLFW。在Visual Studio中建立GLFW环境需要指定包含...

2019-03-13 11:22:17 1493

原创 2018 ICPC 徐州现场赛

2018ICPC徐州区域赛,这是我第一次参加的ICPC比赛,经过五个小时的奋斗,最后拿了一个铜奖。虽然对于各位dalao这次的题可能并不太难,但是我们队卡到比赛结束也只做出了A题,而且罚时几乎要排到铜尾。不过这次比赛对我来说真的非常有意义,我在ICPC赛场上做出了第一道题,也拿到了第一个ICPC奖项,还收获了很多宝贵的经验。回顾这次的比赛,开局一眼望去就觉得没有水题,我看了下C题和F题的题面,但...

2018-10-29 01:48:58 2153

原创 算法:随机数

随机数思路1在C++中,生成随机数的函数为rand(),返回一个不大于RAND_MAX的非负数。但是,如果生成随机数的种子和生成的次数相同,那么生成的随机数相同,因此rand()只能生成伪随机数。为了尽量得到真随机数,每次应该取不同的种子,由于time(NULL)返回从1970.1.1/00:00到现在的秒数,可以采用srand(time(NULL))。因为程序运行非常快,两次取随机数的间隔可...

2018-10-12 18:52:19 598

原创 算法:数位DP

数位DP问题求区间[L,R][L, R][L,R]中满足条件的数有多少个, 0≤L≤R0 \le L \le R0≤L≤R,该条件与数位有关,比如不包含数字444。思路时间复杂度O(log⁡n)O(\log n)O(logn)。实际上为nnn的位数,而nnn的位数可以表示为lg⁡n\lg nlgn,即log⁡nlog⁡10\frac {\log n}{\log 10}log10logn​...

2018-10-12 14:16:49 242

原创 算法:拓扑排序

拓扑排序定义将一个有向无环图的所有顶点排成一个线性序列,满足所有单向边都由序号小的顶点指向序号大的顶点,这就是拓扑排序。思路计算所有顶点的入度,将入度为000的顶点排在前面,即序号较小的位置,然后删去这些顶点以及连接的边,再从剩下的顶点中选取入度为000的顶点排序,不断循环直到所有顶点均分配好序号。因为当顶点被分配序号时入度为000,即所有指向该顶点的边均来自序号更小的顶点,所以按序号形成...

2018-10-08 00:41:12 292

原创 Android Studio项目模板

Android Studio在新建项目时会根据模板生成初始文件,我们可以修改文件模板。项目模板模板所在目录:Android Studio\plugins\android\lib\templates下面我将修改三个文件,分别是NewAndroidProject\root\build.gradle.ftl,NewAndroidModule\root\build.gradle.ftl和projec...

2018-09-28 16:49:00 2128

原创 Codeforces Round #512 Div. 2

本以为E题不可做,结果一看答案代码倒是不难写,思路很巧妙。A. In Search of an Easy Problem题意对于一道题,每个人进行评分,如果认为困难就给111分,认为简单就给000分。只要有人觉得这道题困难就是难题,问这道题是不是难题。思路记录评分1的数量,若大于0则为难题,否则为简单。B. Vasya and Cornfield题意一个平面上有一个矩形和很多个点,...

2018-09-28 15:37:19 200

原创 算法:逆元

逆元定义一个数aaa的倒数a−1a^{-1}a−1满足a×a−1=1a \times a^{-1} = 1a×a−1=1。取aaa的逆元(amod  b)−1(a \mod b)^{-1}(amodb)−1满足(amod  b)×(

2018-09-27 00:37:46 231

原创 Codeforces Round #511 Div. 2

C题水题没做出来,反而猜对了D题,还好排名变化不大。A. Little C Loves 3 I题意给出一个数nnn,要求取三个不为333倍数的数a,b,ca, b, ca,b,c,满足a+b+c=na+b+c=na+b+c=n。思路若nnn模333得000或111,则取a=1,b=1,c=n−2a=1, b=1, c=n-2a=1,b=1,c=n−2;否则取a=1,b=2,c=n−3a=...

2018-09-23 17:58:12 239

原创 Educational Codeforces Round 51 Div. 2

前四题比较水,E题写出来有BUG最后没时间调试了,赛后才AC。A. Vasya And Password题意多组输入,有一个字符串,修改尽可能少的字符使得字符串中包含大写字母,小写字母和数字,保证存在修改后满足要求的字符串。思路先扫一遍字符串得到大写字母,小写字母和数字的数量。若均大于000,则不修改;若两种字符的数量大于000,则取其中一种数量大于111的字符,取一位修改为剩下的字符,...

2018-09-21 15:11:24 354

原创 Codeforces Round #510 Div. 2

最近一直在Codeforces打比赛,总体感觉Codeforces的题目比LeetCode的质量更高。我现在是大概能做3—4题的水平,只记录我已经AC的题。A. Benches题意有一个数组,将一个数任意分配加给数组中的数,求数组中最大的数的最小可能值和最大可能值。思路对原数组中最大的数加上分配的数即为最大可能值;考虑将所有数加到和原数组中最大的数一样,若需要的数大于分配的数,则最小可能...

2018-09-20 08:37:08 227

原创 算法:矩阵快速幂

矩阵快速幂功能快速计算矩阵AAA的bbb次方幂思路将快速幂算法中的乘法运算替换为矩阵乘法。若将bbb表示为∑pi×2i∑pi×2i\sum p_i \times 2_i,则AbAbA^b可以表示为∏(A2i)pi∏(A2i)pi\prod (A^{2^i})^{p_i},其中pipip_i表示bbb的二进制从右往左第iii位数字。时间复杂度O(logn)O(log⁡n)O(...

2018-08-17 22:15:21 305

原创 算法:快速输入输出

快速输入输出功能对于大量数据进行快速输入输出。思路利用getchar()代替scanf()输入整数,利用putchar()代替printf()输出整数。模板非负整数输入/** * @param x: the input number * @other: x >= 0; */void FR(int& x) { x = 0; char...

2018-08-17 20:48:27 2734

原创 算法:快速幂

快速幂功能快速计算ababa^b思路若将bbb表示为∑pi×2i∑pi×2i\sum p_i \times 2^i,则ababa^b可以表示为∏(a2i)pi∏(a2i)pi\prod (a^{2^i})^{p_i},其中pipip_i表示bbb的二进制从右往左第iii位数字。时间复杂度O(logn)O(log⁡n)O(\log n)测试HDU:1061模板...

2018-08-16 10:35:33 161

原创 算法:线性筛质数

线性筛质数功能输出从000到100000010000001000000的所有质数。思路首先000和111不是质数,从222开始逐个判断是否为质数。如果ttt为质数,那么对于任意正整数kkk,k×tk×tk \times t不是质数,因此可以将k×tk×tk \times t筛去。如果ttt已经被筛去,那么ttt不是质数,但仍然要将k×tk×tk \times t筛去。为了避免重复筛...

2018-07-07 10:55:13 440

原创 算法:大数加法

对于无法用int类型甚至long long int类型表示的大整数,可以用数组来存储,那么大数的运算就需要手动实现。大数加法功能输入两个大数a和b,输出a+b。思路从低位到高位逐位相加,并记录进位,若最高位有进位,则位数加1。必须保证a和b的最高位之前为0,这样在相加时无需根据a和b的位数分类讨论。时间复杂度O(n)模板const int B = 1...

2018-07-01 01:33:04 382

原创 多周期CPU仿真

经过单周期CPU的洗礼,我们接下来要做的就是多周期CPU了。因为有很多单周期的代码可以复用,所以多周期写起来没有那么困难。多周期CPU原理多周期CPU就是指一条指令在多个时钟周期内完成,本身并不涉及多级流水线的设计,所以执行指令的性能反而不如单周期CPU。不过每一条指令在不同的时钟周期完成不同的阶段,因此执行指令的流程会更容易理解。每一条指令最多包含以下五个阶段: 1. 取指令:sI...

2018-06-19 21:33:55 2534

原创 单周期CPU仿真

之前的几周我们做了单周期CPU仿真的实验,虽然一开始做得一脸懵逼,但最后还是成功实现了一个简单的CPU。单周期CPU原理单周期CPU指的是一条指令的执行在一个时钟周期内完成,无论是哪种指令。处理指令有以下五个步骤: 1. 取指令:从PC取出下一条指令的地址并读取指令。 2. 指令译码:根据指令产生各种控制信号。 3. 指令执行:根据控制信号执行指令。 4. 存储器访问:读写存储...

2018-06-09 20:17:27 4229

原创 算法:模拟退火

之前觉得模拟退火算法是很高大上的存在,一直没有去了解。然后上次数模校赛我们就用到了模拟退火算法,发现思路其实并不复杂。模拟退火算法模拟退火(Simulated Annealing),来源于热力学上的退火现象。退火现象就是,将固体加温再徐徐冷却,最后在常温时就会呈现晶体状态。从微观角度来看,固体加温时,内部粒子趋于无序,内能增大;徐徐冷却时,粒子趋于有序,内能减小,在每个温度都达到平衡态;最...

2018-06-05 01:22:44 370

原创 算法:最大公约数

很快ACM校集训队要选拔了,想学一波算法,顺便记下模板。最大公约数功能输入两个数a和b,输出a和b的最大公约数.最大公约数: 1. 既可以整除a,也可以整除b的数,组成集合C 2. 集合C中的最大元素,即最大公约数思路辗转相除法: 1. 用a和b中较大值max除以较小值min 2. 若整除,则结果为min 3. 若不整除,则令a和b分别等于min和余数mod,递归...

2018-06-01 22:40:15 1500

原创 2018年数学建模校赛

最近每个周末都有好多作业,上周趁有空就参加了数学建模校赛,就用今年“深圳杯”数学建模挑战赛作题目。连续打了两天,最后已经没有时间做结果分析了,写的论文也不算理想,不过我觉得模型做得还不错,所以想记录一下。我们选了B题——无线回传拓扑规划,其实就是一道图论题,重点是设计算法。题目输入为1000个节点的位置,用经纬度表示,输出为各节点的布置、连接关系以及总体成本。题目限制各节点只能为宿主站或者子站...

2018-05-23 15:37:51 6558 7

原创 数据库:关系代数

目录数据库实例关系代数选择与投影集合操作连接除参考资料有了数据库,还要通过查询来获得数据。SQL是常用的查询语言,但我想用更抽象的查询语言来表达,从思路上去理解而忽略实现细节。下面将介绍关系代数。 数据库实例在介绍查询语言之前,先定义一个数据库实例: Sailors(sid: integer, sname: string, rating: int...

2018-04-16 22:03:59 752

原创 Java入门

JavaJava是一门面向对象编程语言,吸收了C++的优点,功能强大,简单易用,具有安全性、可移植性、多线程等特点。配置环境首先下载Java JDK,再在环境变量中添加JAVA_HOME,变量值为Java JDK的路径,然后在PATH中添加变量值%JAVA_HOME%/bin以及在CLASSPATH中添加变量值%JAVA_HOME%/lib,最后在命令行中输入java -versi...

2018-04-16 22:02:58 210

原创 Junit入门

JunitJunit是一个java语言的单元测试框架。下面以HelloWorld类为例总结Junit的使用。首先需要下载Junit的jar包,然后编译HelloWorld类和HelloWorldTest类,最后执行测试命令。 HelloWorld类如下: HelloWorldTest类如下: 在HelloWorldTest类中,静态导入org.junit.Assert可以...

2018-04-16 13:15:56 222

原创 Ant入门

AntAnt是一种基于java的build工具,类似于C中的make,用于将软件编译、测试、部署等步骤联系在一起并自动化执行。build.xml在命令行中输入命令ant会执行构建文件,默认命名为build.xml。 类HelloWorld的构建文件如下: 类Calculator的构建文件如下: 标签构建文件标签的说明如下: 标签 说明 &...

2018-04-16 08:54:28 157

原创 Vim入门

实训第一周要求学习使用Vim,参考vimtutor作了一些总结。(在linux系统输入命令vimtutor可以打开使用Vim的入门教程vimtutor)Vim在终端中输入vi进入Vim编辑器。模式Vim有三种常用模式,分别为普通模式、插入模式和命令行模式:普通模式下可以移动光标和删除文本插入模式下可以输入文本命令行模式下可以保存文档和退出Vim在普通模式下按i切...

2018-04-16 01:05:08 282

原创 算法:State Compression

上周参加了学校的acm比赛,只做出两道水题,看了答案发现其中有两道题用到了状态压缩,于是就去学习了一波。状态压缩状态压缩就是将题目的模型抽象成状态的集合,如果每个对象只有两个状态且对象数量较少,可以用0和1分别代表这两种状态,用一个二进制数可以表示所有对象的状态,其中位数等于对象的个数。状态压缩往往与动态规划联系起来,下面以LeetCode的一道题作为例子。Can I Win...

2018-04-04 20:00:54 211

原创 数据库:ER图

目录实体集联系集码约束参与约束弱实体类层次聚合与三元联系总结参考资料这个学期上数据库课,于是想做一些笔记,以备期末复习。首先是如何画数据库的ER图。实体集实体是客观世界的对象,实体集就是一类相似实体的集合。实体集用矩形表示,名称为名词复数且首字母大写。 实体集中的实体有相同的属性。属性用椭圆表示,名称为名词单数。 每个实体集都可以选取一个或多...

2018-04-02 00:33:05 18430

原创 算法:Sliding Window

上周末终于有空参加LeetCode的比赛了,而且这还是我第一次在比赛中完成所有的题目。虽然加上罚时超了比赛时间,但和以前相比也算是很大的进步。这次的题目比较简单,前两道就是暴力解法,第三道是动态规划的简单应用,最后一道比较有意思,我一开始超时了,后来发现可以用滑动窗口的思想优化。滑动窗口即Sliding Window,其实我不确定滑动窗口是不是一个算法,因为我在书上并没有看到过这个算法的介绍,但滑...

2018-03-14 00:36:16 820

原创 LeetCode Contest 74

日常鸽比赛,不过做完这周的题后感觉挺有意思的,记一下思路。Valid Tic-Tac-Toe State问题给出一个井字棋的棋盘,求是否合理。思路首先,井字棋先手为X,后手为O,因此合理的棋盘中X数量比O数量多1或两者相等,如果先手获胜,则X数量必然比O数量多1;如果后手获胜,则X数量必然和O数量相等。其次,一旦有一方获胜,即任意一行或一列或对角线均为X或均为O,则游戏结束...

2018-03-06 00:29:08 232

原创 算法:Binary Search

在做编程题的时候,我们要考虑算法的时间复杂度和空间复杂度,为了降低时间复杂度,我们经常用二分法将线性复杂度降为对数复杂度,那么现在我来总结一下二分查找。二分查找思路当需要从线性数组查找时,我们可以遍历数组,时间复杂度为O(n)。但如果数组是有序的,那么我们可以先将数组中间的元素与待查找的元素比较,根据比较结果从数组的前半部分或者后半部分继续查找,这样显然要比逐个查找快多了。在最坏情...

2018-02-23 21:28:22 314

原创 算法:Dynamic Programming

今天在LeetCode做了一道动态规划的题,一直觉得动态规划的解题思路很有意思,借这道题来总结一下。动态规划我最初搞不懂动态规划是什么,那时候懂贪心算法,觉得贪心算法就是在求解问题的每一步都取全局最优,而动态规划在求解问题的每一步都取局部最优。后来做了一些动态规划的题才发现自己早就接触过了,还记得一道很经典的求从起点到终点有多少种走法的题就用了动态规划的思想。现在看来,动态规划就是缩小...

2018-02-13 19:04:31 199

空空如也

空空如也

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

TA关注的人

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