自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

还是小屁孩

小屁孩想好好学,好好玩!

  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 Git学习

Git的思维导通图:1 Git版本控制下的三种工程区域&文件状态Git版本控制下的工程区域只有三种:1.版本库(Repository)在工作区中有一个隐藏目录.git,这个文件夹就是Git的版本库,里面存放了Git用来管理该工程的所有版本数据,也可以叫本地仓库。2.工作区(Working Directory)日常工作的代码文件或者...

2019-07-15 20:47:20 258

原创 Linux设备驱动开发

内核模块:内核模块功能介绍 Linux提供了这样的一种机制:编译出的内核本身并不需要包含所有功能,而在这些功能需要被使用的时候,其对应的代码可被动态地加载到内核中;这种机制被称为模块(Module)。模块具有以下特点。1、模块本身不被编译入内核映像,从而控制了内核的大小。2、模块一旦被加载,它就和内核中的其他部分完全一样.常用命令 1、insmod:加...

2019-07-15 20:43:46 488 1

原创 yolov2-Tiny转换到ncnn下移植到android端

之前一篇介绍了yolov2-Tiny在darknet下训练,之后转化为caffe下,最终转换到ncnn下:https://blog.csdn.net/qq_29377279/article/details/83548180这一篇将记录一下我和师兄继续踩坑android,对于不会安卓,C/C++一般的我们,居然还要结合安卓和C/C++。先安装好Android Studio,再安装好NDK参考:...

2018-11-01 21:51:53 4880 17

原创 yolov2-Tiny在darknet下训练模型转caffe再到ncnn实现

最近一直和师兄在调试ncnn下使用yolov2-Tiny,感觉资料很少,踩了很多坑,就记录一下过程吧。yolov2-Tiny在darknet下训练过程可以参考我之前的博客:https://blog.csdn.net/qq_29377279/article/details/83141239过程都类似,只是聚类的anchor有点不太一样,yolov3是9个,yolo-Tiny是5个。这是我聚类...

2018-10-30 20:24:06 7472 36

原创 用YOLOv3训练、测试自己的数据

申明:这里参考借鉴了一份ppt,但未找到所属者,如作者看到请及时联系。下载模型及权重文件模型下载地址:https://github.com/pjreddie/darknet权重下载地址:https://pjreddie.com/darknet/yolo/数据形式介绍1、数据分为图片和标注。二者为一一对应关系2、标注可用LabelImg等标注软件生成数据导入及配套文件生成1.在d...

2018-10-18 10:33:18 14788 10

原创 C语言中的可变参数列表

还记得刚学C语言时,第一个程序就是使用printf打印“hello world!”,当时觉得很神奇,后来慢慢觉得是最简单的,可渐渐熟悉之后发现,我们写的函数的参数都是固定的,而发现printf的参数居然是不定的,不知道有没有去研究过这个问题呢。其实这就是C语言中可变参数的功能。可变参数 C语言中可以定义参数可变的函数参数可变函数的实现依赖于stdarg.h头文件 va_list变量与...

2018-10-17 16:40:21 290

原创 C语言中的内存错误等问题

非法内存操作分析 结构体成员指针未初始化 没有为结构体指针分配足够的内存#include <stdio.h>#include <malloc.h>struct Demo{ int* p;};int main(){ struct Demo d1; struct Demo d2; int i = 0; ...

2018-10-17 16:26:35 452

原创 C语言中野指针

野指针野指针通常是因为指针变量中保存的值不是一个合法的内存地址而造成的野指针不是NULL指针,是指向不可用内存的指针 NULL指针不容易用错,因为if语句很好判断一个指针是不是NULL(注意:C语言中没有任何手段可以判断一个指针是否为野指针!)野指针的由来局部指针变量没有被初始化#include <stdio.h>#include <string.h&gt...

2018-10-17 16:15:59 457

原创 C语言中程序的内存分布

程序文件的一般布局代码在可执行程序中的对应关系程序的内存布局文件布局在内存中映射各个段的作用 堆栈段在程序运行后才正式存在,是程序运行的基础 .bss段存放的是未初始化的全局变量和静态变量 .text段存放的是程序中的可执行代码 .data段保存的是那些已经初始化了的全局变量和静态变量 .rodata段存放程序中的常量值,如字符串常量程序术语对应关系静态存储区...

2018-10-17 16:03:25 426

原创 C语言程序中的栈、堆、静态存储区

栈栈是现代计算机程序里最为重要的概念之一栈在程序中用于维护函数调用上下文,没有栈就没有函数,没有局部变量程序中的栈栈保存了一个函数调用所需的维护信息*函数参数,函数返回地址* 局部变量* 函数调用上下文程序中的堆为什么有了栈还需要堆?*栈上的数据在函数返回后就会被释放掉,无法传递到函数外部,如:局部数组堆是程序中一块巨大的内存空间,可由程序自由使用堆中被程序...

2018-10-17 15:54:47 6801 9

原创 C语言中的动态内存分配

为什么使用动态内存分配? C语言中的一切操作都是基于内存的 变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定 定义数组的时候必须指定数组长度 而数组长度是在编译期就必须决定的需求:程序运行的过程中,可能需要使用一些额外的内存空间。malloc和free malloc和free用于执行动态内存分配和释放 malloc所分配的是一块连续的内存,以字节为单...

2018-10-17 15:34:51 7255

原创 C语言的指针

指针本质指针在本质上也是一个变量指针需要占用一定的内存空间指针用于保存内存地址的值*号的意义 在指针声明时,*号表示所声明的变量为指针 在指针使用时,*号表示取指针所指向的内存空间中的值//指针声明:int i = 0;int j = 0;int* p = &i;//取值:j = *p;*号类似一把钥匙,通过这把钥匙可以打开内存,读取内存中的值。传...

2018-10-14 19:25:01 115

原创 C语言的内置宏(定义日志宏)

我们在写C语言程序的时候,会经常用到宏定义,C语言也有很多内置的宏。强大的内置宏:我们再来写一个定义日志宏的程序感受一下。#include <stdio.h>#define LOG(s) do { \ printf("%s %s [%s:%d] %s\n", __DATE__,__TIME__,__FILE__,__LINE__,s);\}while(0)void ...

2018-10-12 15:27:40 1840

原创 C语言隐式类型转换

C语言隐式类型转换 算术运算式中,低类型转换为高类型 赋值表达式中,表达式的值转换为左边变量的类型 函数调用时,实参转换为形参的类型 函数返回值,return表达式转换为返回值类型对于上面的隐式类型转换规则,绝大多数学c语言或者说学编程的人都知道。那下面我们看一个有趣的例子吧:#include <stdio.h>int main(){ int i ...

2018-10-11 19:16:58 5156 5

原创 C语言中易错的优先级

对于C语言中的优先级,有一张表,内容很多,正常都不会完全记下来。多数觉得根据使用和尝试理解,可以绝大部分可以知道的,但有一部分是跟我所理解的有所不同。先看一段代码:#include <stdio.h>#include <malloc.h>typedef struct _demo{ int* pInt; float f;} Demo;int ...

2018-10-11 19:03:07 198

原创 C语言中++、-- 及编译器的贪心法

C语言中的++、–即自增、自减是很令人头疼的。刚好看到一个问题,一起分析一下。int i = 3;(++i) + (++i) + (++i);你觉得这个表达式的值是多少?如果你觉得是15,那完了,你c语言学的跟我一样,太烂了。我去查了一下,有说是16,还有说是18的。分析了一下,好像都有道理。如果是都先做完括号内的,那答案就是18了。但编译器如果认为前两个括号做完,然后会认为后面...

2018-10-11 16:56:21 782

原创 查找出现的次数为奇数次的自然数(位运算)

这也是在看位运算时,觉得经常会问到的一个题:有一个数列,其中的自然数都是以偶数次的形式出现,只有一个自然数出现的次数为奇数次。编写程序找出这个自然数。看到这个题感兴趣是因为之前有个很火的位图的题,我觉得有一点点相通的,就分享一下。第一种方法:1、将数列从小到大排序;2、遍历数组a,并对出现的数进行计数b;3、对计数数组b遍历,查找奇数位置,即得出答案。第二种方法:也就是第一种的改良...

2018-10-11 16:17:44 765

原创 两个数的交换(位运算)

昨天在重新学习c语言的时候,看到位运算,然后看到一个有趣的问题,好像以前也看过这个题,就分享一下吧。两个数的交换,不借助第三个变量空间。先放代码:#include <stdio.h>#define SWAP1(a,b) \{ \ int temp = a; \ a = b; \ b = temp; ...

2018-10-11 15:45:19 4694

原创 Python核心编程--正则表达式

Python核心编程–正则表达式正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。正则表达式(regex)是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则表达式能按照某种匹配一系列有相似特征的字符串。Python通过标准库中的re模块来支持正则表达式。常见正则表达式符号和特殊字符最常用的正则表达式符号,即*、+和?,所有这些...

2018-09-30 15:13:28 264

原创 C#实现简单串口通信助手

建立好一个form后,选择工具箱,在组件所属里找到SerialPort: 拖拽一个即可。这时可以看到属性栏: 可以查看修改默认属性值。这时就可以通过控件设计我们的界面啦: 我这里设计的很简单,包括串口设置、接收数据、发送数据。串口设置参数,我只包含了两个,我们经常改动的COM口和波特率,其他都使用默认值。 波特率通常使用的有固定几种,我们将可能用到的写到波特率绑定的co...

2018-07-21 16:25:59 39002 49

原创 C# Windows应用窗体用户自定义控件--开关实现

在学习C# Windows应用窗体时,利用用户自定义控件实现了一个小的开关控件。 参考:https://www.cnblogs.com/feiyangqingyun/archive/2013/06/15/3137597.html先准备了两个好看的开关图片: 将图片资源导入项目 打开Properties下Resources.rex: 选择图像: 添加现有文件:(将准备好的图...

2018-07-21 00:31:40 9522 6

原创 Python3+Flickrapi爬取图片

在学习爬取图片的时候,师兄推荐了yahoo的flickr,发现真的是方便好用,就分享一下自己的使用过程。 参考的博客:https://www.cnblogs.com/kkyyhh96/p/5675087.html https://blog.csdn.net/asukasmallriver/article/details/74779892首先去https://www.flickr.com/注...

2018-07-20 23:01:30 5008 5

原创 2018浪潮实习生挑战赛

这是浪潮第一次举办的比赛,然后就参加了,初赛是机试,包含性格测试等,然后一些专业选择题,两个编程,编程挺简单的,都ac了。 复赛赛题为新闻文本分类或聚类,然后进行推荐。 工作量还是很多的,但只给了一个星期来做,我其实不会啦,就开始在github上找开源,在此强力大赞开源就是爽啊,我找到了我需要的。新闻文本分类使用了cnn、rnn新闻推荐采用了协同过滤(用户相似性)、基于内容相似性、热点...

2018-07-06 17:11:20 589 3

原创 2018 华为软件精英挑战赛

和室友一起参加了2018 华为软件精英挑战赛,现在来写写参赛感受吧。很遗憾,都没能进复赛,所以只参加了初赛,江山赛区64强,离进复赛只有一点点,当时江山和西北赛区还流传着,如果在其他赛区就可以进了,都是后话。写这个纯粹记录研究生生活吧。1、初赛赛题由于租户对ECS实例(虚拟机,VM)请求的行为具有一定规律,可以通过对历史ECS实例请求的分析,预测到未来一段时间的ECS实例请求,然后对预...

2018-07-06 15:43:42 2616 2

原创 堆排序(heap_sort)

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。小根堆则反之。 小根堆分析:...

2018-03-13 21:12:55 269

原创 快速排序(quick_sort)

快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 分析: 第一个为关键字,依次与其比较,i为其位置,j为下一个比较数,如果大于关键字,j继续后移,没有其他操作;如果小于...

2018-03-12 22:38:09 282

原创 归并排序(merge_sort)(及自底向上的归并排序)

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并过程为:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第一个有序表中的元素a[i]复制到r[k]中,...

2018-03-12 20:57:31 1528

原创 ccf201712-2

问题描述 试题编号: 201712-2 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。   游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数...

2018-03-12 13:59:55 252

原创 进程、线程、程序

进程与线程:进程是一个具有一定独立功能的程序的一次运行活动。特点:动态性 并发性 独立性 异步性状态:进程ID(PID):标识进程的唯一数字 父进程的ID(PPID) 启动进程的用户ID(UID)进程互斥进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个 进程使用,其他要使用该资源的进程必须等待,直到占用该资...

2018-03-08 19:10:17 189

原创 嵌入式linux(Uboot)

UbootUboot是德国DENX小组开发的用于多种嵌入式CPU( MIPS、x86、ARM、XScale等)的bootloader程序,UBoot不仅支持嵌入式Linux系统的引导,还支持VxWorks, QNX等多种嵌入式操作系统。源码:ftp://ftp.denx.de/pub/u-boot/(一直在更新)目录结构: Board 和开发板有关的文件。每一个开发板都以一个

2018-02-06 16:46:11 1806

原创 嵌入式linux(Bootloader)

嵌入式系统层次一个嵌入式系统从软件角度来看分为三个层次: 1、引导加载程序 包括固化在固件(firmware)中的boot 程序(可选),和BootLoader 两大部分。 2.、Linux 内核 特定于嵌入式平台的定制内核。 3.、文件系统 包括了系统命令和应用程序。一个同时装有BootLoader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图:

2018-02-06 16:34:07 284

原创 嵌入式linux(交叉工具链)

在linux环境下编程前,我们需要安装gcc编译器。 那在进行嵌入式linux开发前,我们首先需安装交叉工具链。 1、下载arm-linux-gcc-xxx.tar.gz 2、解压工具链到某一目录下: 如:tar xvzf arm-linux-gcc-4.3.2.tar.gz –C / –C 表示解压到指定目录,这里为/根目录。 3、修改/etc/profile,添加: pathmu

2018-02-06 16:15:39 697

原创 Linux内核模块

Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用需要的组件呢: 方法一:把所有的组件都编译进内核文件,即:zImage或bzImage,但这样会导致两个问题:一是生成的内核文件过大;二:是如果要添加或删除某个组件,需要重新编译整个内核。 方法二:Linux提供了一种叫做“内核模块”的机制,能让内核文件(zImage或bzImage)本身并不包含某组件,而是在该组件需要被使用的

2018-02-03 20:45:56 207

原创 Linux内核源码目录

内核源码下载地址:www.kernel.org目录:以linux-2.6.38为例(现已经更新到linux-4.15)arch目录arch是architecture的缩写。内核所支持的每种CPU体系,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等。block目录:部分块设

2018-02-02 21:41:08 2851

原创 Linux体系结构、Linux内核架构

Linux体系结构Linux由用户空间和内核空间两部分组成。现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式(usr)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中止(abt)、系统模式(sys)、未定义指令异常(und)X86也实现了4个不同的级别:Ring0—Ring3。Ring0下,可以执行特权指令,可以

2018-02-02 21:01:53 1213

原创 树莓派使用cgminer挖矿测试

树莓派挖矿使用树莓派(CPU)和挖矿工具cgminer挖矿直接默认使用root权限下载挖矿工具cgminerwgethttp://ck.kolivas.org/apps/cgminer/cgminer-2.4.2.tar.bz2tar-jxvf cgminer-2.4.2-1.tar.bz2安装依赖包apt-get installbuild-essential li

2018-01-08 11:04:38 10035 4

原创 ccf201709-2

ccf201709-2

2017-11-25 13:32:14 374

原创 ccf201612-2

ccf201612-2

2017-11-25 13:18:08 715

原创 ccf201703-2

ccf201703-2

2017-11-25 13:12:37 292

原创 ccf201609-2

ccf201609-2

2017-11-23 22:15:47 602

算法分析ppt

算法分析ppt 第2章 递归与分治策略 算法总体思想

2015-06-28

空空如也

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

TA关注的人

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