自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

自律带来自由

最好的学习方法就是将自己所学的转教并教会别人。

  • 博客(51)
  • 资源 (4)
  • 收藏
  • 关注

原创 【FISCO-BCOS】群签名 && 环签名 客户端与RPC服务端的部署与使用

最近需要使用环签名算法实现签名与签名验证,想查看网上有没有开源的环签名算法实现,搜了一圈最终只发现 FISCO-BCOS(金链盟区块链底层开源平台) 有相关的开源代码且有详细的文档,并提供额外的开源库给用户体验与尝试群签名和环签名的服务,恰好符合我的需求,于是我开始着手部署这些开源项目。由于提供群签名和环签名服务的两个开源库已是两年前的项目了,并且该项目文档也存在一些纰漏,导致我在部署的过程中遇...

2019-12-19 20:57:00 2019

原创 群签名与环签名介绍

群签名群签名,即群数字签名。是 1991 年 由 Chaum 和 van Heyst 提出的一个比较新的签名概念。Camenish、Stadler、Tsudik 等对这个概念进行了修改和完善。群签名(group signature):在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证...

2019-12-19 19:01:23 8122

原创 【leetcode】第143题 重排链表 3种方法求解 C++

题目:重排链表给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, ...

2019-11-06 23:27:22 711

原创 【问题笔记】Linux下 pip 安装 python 库提示超时

今天在本地重新配了一下 ubuntu 虚拟机的环境,因为使用的是渣校园网,下载安装 Python 扩展库的时候速度奇慢无比,还总是提示连接超时,下载失败等,然后搜索了一下网上的解决办法,个人觉得最有效的如下:解决办法:1. 设置超时时间:pip --default-timeout=100 install 包名2. 不使用缓存:pip --no-cache-dir install 包名3....

2019-11-04 22:29:52 870

原创 【问题笔记】linux下安装python项目时报错:找不到 pcap.h

环境:ubuntu 18.04 python3.6今天安装一个开源项目时,遇到报错提示:“pcapdumper.cc:11:10: fatal error: pcap.h: No such file or directory#include <pcap.h>^~~~~~~~compilation terminated.error: Setup script exited...

2019-11-04 21:11:24 4438

转载 高并发(High Concurrency)

#整理了一些博文作为高并发相关理论的学习笔记,同时加上了一些个人的理解,尊重原创者,文章属性就设为转载吧,参考博文的链接已附在最后。高并发并发,其实就是通过设计可以同时处理多个请求。而高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。并发能力的衡量标准一个系统的并发能力大概有这么几个参数来决定的...

2019-08-22 23:43:20 932

转载 分布式: CAP 和 BASE 理论

分布式 CAP 原理CAP原理图:CAP 是按照美国著名科学家 Eric Brewer 在 2000 年提出的理论,当技术架构从集中式架构向分布式架构演进,会遇到 “CAP 定律”的瓶颈。我们可以从上面的图中看出的是,CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。CAP 原理分别表示一致性(Consistency),可用性(Available),分区容错性(Parti...

2019-08-22 23:19:08 251

转载 分布式:分布式系统的设计

分布式系统在计算机领域,当单机性能达到瓶颈时,一般有两种方式解决性能问题:堆硬件,进一步提升配置;分布式设计,如水平拆分、垂直拆分。分布式系统有很多种:分布式文件系统、分布式数据库、分布式 WebService、分布式计算等等,面向的情景不同,但分布式的思路大致相同,万法归一。而分布式系统的设计说白了就是: 如何合理将一个系统拆分成多个子系统部署到不同机器上。讲设计方法前,先介绍分...

2019-08-22 23:12:54 2879

转载 分布式:概要,与集群的区别

#整理了一些博文作为分布式相关理论的学习笔记,同时加上了一些个人的理解,文章属性就设为转载吧,参考博文的链接已附在最后。分布式概要,与集群的区别分布式系统的设计CAP 和 BASE 理论 分布式和集群的概念分布式: 不同的业务模块部署在不同的服务器上或者同一个业务拆分为多个子业务,部署在不同的服务器上,解决高并发问题 。集群: 同一个业务,部署在多个服务器上,提高系统可用性 。...

2019-08-22 23:04:40 163

原创 【数据结构】查找:哈希表(散列表)——计算式查找法

#笔记整理哈希表——计算式查找法定义:哈希法又称散列法、杂凑法或关键字地址计算法等,相应的表称为哈希表或散列表。方法的基本思想:在元素的关键字 Key 和元素的存储位置 p 之间建立一个对应关系 H,使得 p = H(Key),H 称为哈希函数(散列函数),是一个压缩映象。当需要查找关键字为 key 的元素时,利用哈希函数计算出该元素的存储位置 p = H(key),从而达到按关键字...

2019-08-21 14:31:09 1500

原创 【数据结构】查找:动态查找表(B-树,B+树,红黑树)

#笔记整理多路查找树(multi-way search tree):其每个结点的孩子树可以多于两个,且每一个结点可以存储多个元素。由于它是查找树,所有元素之间存在某种特定的排序关系。B-树也称B树, B-树是一种平衡的多路查找树,是一种组织和维护外存文件系统非常有效的数据结构,常用作文件索引。结点最大的孩子数目称为 B 树的阶。一棵 m 阶 B-树或者是一棵空树,或者是满足下列要求的 ...

2019-08-20 23:07:22 712

原创 【数据结构】查找:动态查找表(二叉排序树/BST/二叉搜索树,平衡二叉树/AVL)

#笔记整理动态查找表——基于树表的查找法动态查找表的特点:表结构本身在查找过程中动态生成,即对于给定值 key,若表中存在关键字等于 key 的记录,则查找成功,否则插入关键字等于 key 的记录。动态查找表的主要运算- 创建、销毁- 查找、插入和删除- 遍历二叉排序树(二叉搜素树、二叉查找树)BST (Binary Sort Tree)/(Binary Search Tree)...

2019-08-20 22:51:14 2658

原创 【数据结构】查找:基本概念及静态查找表(顺序查找、二分查找、索引查找)

#笔记整理查找查找的基本概念静态查找表——基于线性表的查找法动态查找表——基于树表的查找法哈希表——计算式查找法基本概念查找表由同一类型的数据元素(记录)构成的集合。查找的定义给定一个值 key,在含有 n 个记录的表中找出关键字等于 key 的记录。若找到,则查找成功,返回该记录的信息或该记录在表中的位置;否则查找失败,返回相关的指示信息。静态查找表(Static S...

2019-08-20 22:37:42 4276

原创 【计算机网络】TCP的保活机制

#笔记整理TCP 保活机制一些情况下,客户端和服务器需要了解什么时候终止进程或者与对方断开连接。应用进程之间没有任何数据交换,但仍然需要通过连接保持一个最小的数据流。TCP 保活机制即为了解决上述两种情况而设计。保活机制是一种在不影响数据流内容的情况下探测对方的方式。它是由一个保活计时器实现的,当计时器被激发,连接一端将发送一个保活探测(简称保活)报文,另一端接收报文的同时会发送一个ACK作...

2019-08-12 14:26:21 848

原创 【网易互娱模拟笔试】解题记录

08-04那天参加了一下网易互娱的模拟笔试,那天状态不太好,再加上调试第一题花了很长时间,心态有点炸了,所以最后完成得并不理想。总结:笔试心态还不够稳,手速还不够快,算法还不够熟。一共 3 道题,题目都很简单,但是自己并没有做完,汗颜羞愧。记录一下。第一题:新税收政策中,起征点是5000,超过5000的部分,需要进行分级纳税,题目给的图类似下图:要求:多行输入,每行输入月收入,假设无...

2019-08-08 18:21:57 1013

原创 【leetcode】第142题 环形链表2(#142. Linked List Cycle II)详解(哈希表+快慢指针),C++

这题的题解中的快慢指针法的理解涉及到公式推导,将自己的理解先记下来,防止以后忘记。题目题解1题解1就是使用 set 作为哈希表,没啥难度。思路:使用哈希表的唯一性存下每个遍历过的结点,当再次遇到同一结点时该结点为入口直接返回分析: 时间复杂度 O(n),空间复杂度 O(n)实现:ListNode *detectCycle(ListNode *head) { set...

2019-08-02 18:59:46 227

原创 【数据结构】树:哈夫曼树(Huffman Tree,也称哈弗曼、赫夫曼树)、哈夫曼编码解析与实现(c++)

#笔记整理树的定义参照前文:二叉树、遍历二叉树与线索二叉树等树的定义与解析、二叉树遍历实现哈夫曼树(也称赫夫曼树)相关概念:① 路径长度从树中一个结点到另一个结点之间的分支(树枝)构成这两个结点之间的路径, 路径上的分支(树枝)数目称做路径长度。② 树的路径长度从树根到每一结点的路径长度之和(所有结点到根的路径长度的和)。③ 结点的权和带权路径长度给树的每个结点赋予一个具有某...

2019-07-19 12:47:23 899

原创 【数据结构】树:非二叉树(普通树)与森林的遍历

#笔记整理树的定义参照前文:二叉树、遍历二叉树与线索二叉树等树的定义与解析、二叉树遍历实现非二叉树与森林的遍历树的遍历(两种)1) 先根遍历若树非空,则遍历方法为:①访问根结点。②从左到右, 依次先根遍历根结点的每一棵子树。等同于转换的二叉树进行先序遍历2)后根遍历若树非空, 则遍历方法为:①从左到右, 依次后根遍历根结点的每一棵子树。②访问根结点。等同于转换的二叉...

2019-07-19 12:25:07 4675 5

原创 【数据结构】排序:归并排序(2路归并排序算法)详解,递归实现与迭代实现(C++)

#笔记整理内部排序分类目录:- 插入排序- 交换排序- 选择排序- 归并排序- 计数排序归并基本思路:是将两个或两个以上的有序表合并成一个新的有序表。2-路归并排序假设初始序列有 n 个记录,首先把它看成是 n 个长度为 1 的有序子序列 (归并项),先做两两归并,得到 n / 2 个长度为 2 的归并项 (如果 n 为奇数,则最后一个有序子序列的长度为1);再做两两归并,…...

2019-07-17 18:09:23 7120

原创 【数据结构】排序:排序算法的分类及各类排序算法对比

#笔记整理这几天复习并整理了一下排序算法,发现内容还是挺多的,有些算法和概念很常用也很重要,记录一下。排序排序: 将一组杂乱无章的数据按一定的规律顺次排列起来,使之按关键字递增(或递减)有序排列。排序算法的稳定性(稳定排序,Stable Sort):指当数据中存在2个或2个以上键值相等的元素时,这些元素在排序处理前后顺序不变。由于待排序的记录数量不同,使得排序过程中涉及的存储器不同,可将...

2019-07-14 23:02:11 1357

原创 【数据结构】排序:选择排序(简单选择排序、堆排序等)详解与实现(C++)

#笔记整理选择排序基本思想:每一趟 (第 i 趟,i = 1, …, n-1) 在后面 n-i+1 个待排序记录中选出关键字最小的记录, 作为有序序列的第 i 个记录。简单选择排序(Simple Selection Sort)通过 n−in-in−i 次关键字间的比较,从 n−i+1n-i+1n−i+1 个记录中选取关键字最小的记录,并和第iii个记录交换。算法实现: // 简单选择排...

2019-07-14 22:47:45 1028 1

原创 【数据结构】排序:交换排序(冒泡排序、快速排序)详解与实现(C++)

#笔记整理交换排序交换排序就是基于“交换”规则进行排序的方法,其中包括:冒泡排序(Bubble Sort)、快速排序(Quick Sort)。冒泡排序(Bubble Sort)冒泡排序又称起泡排序,其过程很简单,两两比较相邻的记录,如果反序则交换,直到没有反序的记录为止。算法实现: // 冒泡排序法,对容器或数组nums进行排序 void bubbleSort(vector&...

2019-07-14 22:36:27 3227

原创 【数据结构】排序:插入排序(直接插入排序、希尔排序、折半插入排序、2-路插入排序等)详解与实现(C++)

#笔记整理插入排序:(Insertion Sort)插入排序的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子表中的适当位置,直到全部记录插入完成为止。共有5种插入排序方法:(1) 直接插入排序;(2) 折半插入排序;(3) 2-路插入排序;(4) 表插入排序;(5) 希尔排序。(1)直接插入排序(Straight Insertion Sort):一种...

2019-07-14 22:22:51 4718

原创 【数据结构】树:二叉树、遍历二叉树与线索二叉树等树的定义与解析、二叉树遍历实现(递归、迭代)C++

#笔记整理今天复习总结了一下数据结构中树相关的知识点。先记录一些主要的,慢慢补充。树(tree)树是n (n>=0)个结点的有限集。树是以分支关系定义的层次结构,是一类重要的非线性结构。特性:在任意一棵非空树中有且仅有一个特定的称为根(root)的结点;当 n&gt;1n &gt; 1n>1 时,其余结点可分为m(m&gt;0)m(m&amp...

2019-07-12 20:52:55 350

原创 【爬虫】爬取搜索引擎类页面的爬虫小框架 /爬取搜索结果页面的通用小爬虫(php和python实现)

最近抽时间总结了一下爬虫,写了一个小爬虫框架(工具),便于自己以后需要使用爬虫时不必重新再写,也作为爬虫教程示例记录一下。本爬虫适用于爬取搜索引擎的数据,适用于大多数搜索引擎的搜索结果页面的数据爬取。整个爬虫的编写过程,即此类爬虫的实现思路如下:1. 首先确认一个想要爬取的网页;2. 输入不同的关键字,选择不同的排序方式以及每一页显示的结果数量(如果有这些选项的话)等等;3. 每更改一次...

2019-07-11 23:11:38 2300

原创 【数据结构】字符串 模式匹配算法的理解与实现 Brute Force算法(BF算法)与KMP算法 (C与C++分别实现)

串的模式匹配算法求子串位置的定位函数 Index(S, P, pos)求子串的定位操作通常称作串的模式匹配(其中子串P称为模式串)。算法1:朴素模式匹配算法/简单匹配算法(Brute-Force算法,简称BF算法)从目标主串s=“s1s2…sn”s=“s_1s_2…s_n”s=“s1​s2​…sn​”的第一个字符开始和模式串p=“p1p2…pm”p=“p_1p_2…p_m”p=“p1​p2...

2019-07-08 17:54:45 3863

原创 【数据结构】串(string)的定义与表示

#笔记整理串(string)(或字符串)是由零个或多个字符组成的有限序列,一般记为 s=′a1a2…an′s=&#x27;a_1a_2…a_n&#x27;s=′a1​a2​…an′​。串的定长顺序存储表示(定长顺序串)定长顺序串的存储分配是在编译时完成的。与前面所讲的线性表的顺序存储结构类似, 用一组地址连续的存储单元存储串的字符序列。#define MAXSTRLEN ...

2019-07-08 17:00:52 1940

原创 初衷·示己

初衷·示己前言:  在不止一次体验了重复查询某一知识点以及忘性的强大之后,我时常后悔自己以前没有亲自写博客记录下自己的所学所见所得。    正如博客首页描述上所阐述的,本人写博客的最大目的还是在于学习,为了深刻理解自己所学的东西,巩固所学内容。其次在于锻炼自己表达,记录下自己的经验。  学习计算机专业这么多年来,曾经的我误以为博客只是对找工作有帮助,若不需找工作则不必花费时间去经营,做好...

2019-07-05 09:26:31 157

原创 【计算机网络】OSI参考模型与TCP/IP分层模型对比(体系结构对比)

#笔记整理协议简单来说,协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定“。这种约定使得那些由不同厂商的设备、不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。就好比两个人使用不同国家的语言就行对话,是无法相互理解的。因此两台计算机之间必须能够支持相同的协议,并遵循相同协议进行处理,才能实现相互通信。OSI参考模型在协议的标准化上,ISO(internati...

2019-07-03 23:24:50 10800

原创 【爬虫】简单报警器实现,自动发送报警监控邮件

今天总结一下以前写的报警器,当时用于监视爬虫系统状态,系统异常时发送邮件报警。现在提取出来作为一个独立模块,很简单。首先你需要确认用来发邮件的邮箱已经开通,此处我以126邮箱为例:按照图中指示的顺序点击并开启SMtp服务和设置客户端授权密码设置成功后就能在代码中使用该邮箱发邮件了。创建一个简单报警器步骤:首先需要一个smtp类或库,用于连接SMTP服务器,这个可以从网上下载。编写代...

2019-07-03 12:14:55 3672

原创 【leetcode】第6题 Z字形变换,详细题解, C++实现,#6. ZigZag Conversion

这几天因为状态不太好,在这题上花了比较多的时间,记录一下。因为题目很老了,Leetcode上关于此题的题解很多,然而很多题解解释得都不是很清楚,包括leetcode官方题解,题解中符号所表示的意思都不写明,无力吐槽,还是自己写一个当笔记吧。题目详情将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,...

2019-07-01 16:07:23 3413 1

原创 【爬虫】IP代理池的总结、实现与维护,IP代理池小工具(小框架),自建代理ip池

最近开始着手总结以前做过的工作,写过的代码。今天总结了以前写过的代理池维护模块,首先阐述一下个人理解的代理池:代理池代理池就是用于应付网站的反爬虫的备用代理ip集合。做过爬虫都知道,在抓取某些网站的时候,如果你抓取的频率太高了,你的ip就会被该网站封掉或者说屏蔽掉,接下来你就会爬取失败,所以此时你就需要使用代理来解决这个问题。因此,一个庞大而有效的代理池是每个爬虫系统都应该具备的,它将为爬...

2019-06-29 11:09:49 4350

原创 【问题笔记】在VMware fusion安装kali linux并安装VMware Tools实现俩系统文件拖拽互传-macos系统

昨晚在MacOS上使用Parallels Desktop装了一个kali linux系统,想要实现便捷的文件互传功能——直接在Mac和linux俩系统间拖动文件实现互传,却装不上parallels Tools,提示缺少文件,如下图:折腾一晚上没解决,没时间折腾了,先记录问题,然后决定换一个虚拟机软件。于是装了VMware,然后成功安装kali linux以及VMware Tools并实现了k...

2019-06-28 13:43:10 4002 1

原创 【数据挖掘】关联分析之先验(Apriori)原理与Apriori算法

阅读本文之前建议先理解关联分析的基本概念与术语。传送门本文简单介绍关联分析中的先验(Apriori)原理与Apriori算法,持续更新与补充。先验(Apriori)原理原理简介:如果一个项集是频繁的,则它的所有子集一定也是频繁的。相反,如果一个项集是非频繁的,则它所有的超集也是非频繁的。此原理基于支持度的反单调性(anti-monotone):一个项集的支持度绝不会超过它的子集的支持度。...

2019-06-15 21:28:19 8014 1

原创 【数据挖掘】关联分析基本概念与术语

本文介绍数据挖掘中关联分析的基本概念与基本术语。基本概念与术语1. 事务:一条数据也叫一条事务(transaction),数据的ID即事务的ID,简写为TID,表6-1是购物篮事务的例子,可以理解为顾客的购物记录。2. 二元表示 (这个术语暂时不理解也没关系)如表6-2所示,每行对应一个事务,每一列对应一个项。项用二元变量表示:如果项在事务中出现,则它的值是1,否则为0。因为通常认...

2019-06-15 21:06:48 1979

原创 【leetcode】第69题 x 的平方根 牛顿迭代法实现求平方根函数 C++

这题属于简单题,但是因为学到了新的算法:牛顿迭代法(或牛顿法),这里做一下记录。题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被...

2019-06-15 00:34:03 8674

原创 【数据挖掘】数据挖掘中的经典算法

最近的研究需要用到数据挖掘算法,然而当我使用时发现大三学过的数据挖掘知识都基本忘光了,需要重新进行学习,既然如此,我打算再重新对数据挖掘进行学习整理,这里整理一下数据挖掘领域的相关算法,做一个综述,以后再针对每个算法进行详解,以督促自己重新学习,认真整理、理解以及做好笔记,避免再次遗忘。很多数据挖掘算法也是机器学习算法,所以以下的一些算法将来我也会归入机器学习的类型之中。一、分类1.1. ...

2019-06-10 13:43:49 782

原创 Centos7 Python3的安装或升级

#cenos7上安装/升级python此前服务器上安装了python2.7和python3.4,前几天安装Python库时突然提示说python3.4将要淘汰,因此打算将python升级到3.6,网上没有直接升级的方法,都是python3的安装方法。记录一下自己的升级过程吧,简要过程就是:安装python3.6;卸载python3.4。python3.6安装过程如下:安装前查看...

2019-06-03 23:32:53 1286

原创 centos python3 的 卸载 删除

卸载/删除python 3.4看到网上说慎用 apt-get remove和 yum remove ,因此不敢用此类命令用卸载了(以后阿里云服务器快过期不用了的时候可以试一下,看看系统是否会崩,哈哈)Python3.4将要淘汰了,同时系统已安装python3.6,记录一下自己卸载Python3.4的方法查看所有的python路径:# whereis python运行以下命令删除...

2019-06-03 23:16:21 27910 1

原创 Python 移动文件 文件转移 文件批量移动小工具

#python文件操作#python文件移动今天要把某目录下的所有文件夹里的文件都移动到该目录,也就是把所有文件移动到上一层目录下。机械式操作,很烦,就写一个Python脚本批量处理。记录一下。以后稍微改动还能实现其他文件移动的功能以下是源码:import osimport shutil# move files from source path to destination p...

2019-06-02 19:55:19 2752 5

吴恩达深度学习系列课程课件+作业+答案.rar

吴恩达教授在coursera的深度学习课程全五期的笔记、ppt、编程作业及答案。 其中的课程包括:1:神经网络和深度学习,2:改善深层神经网络:超参数调试、正则化以及优化,3:结构化机器学习项目,4:卷积神经网络,5:序列模型

2019-05-16

算法(第4版).zip

算法第四版,橙色的那本,JAVA实现的,其中包括了中文扫描版+英文文字版+配套代码

2019-05-16

空空如也

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

TA关注的人

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