自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr_LiShao的博客

沉着冷静,慎思笃行

  • 博客(44)
  • 资源 (7)
  • 收藏
  • 关注

原创 根据pytest原理实现的简单逻辑

基于pytest原理实现的简单逻辑

2022-06-17 16:39:28 194 1

原创 自制手机页面监视器

自己写了个手机页面的监视器,新建一个线程通过ui自动化去处理常见的一些情况,如弹框授权等import timeimport threadingimport uiautomator2 as u2class Watcher(): def __init__(self, phoneui2, watcher_name=None, timeout=100): self.__name = watcher_name self.__keys = [] .

2022-04-19 14:43:14 296

原创 快速排序的优化

快排基准点选择:1、最原始的方式,选择列表第一个或最后一个的元素。当待排序列表之前是有序(正序或逆序)的时候,快排时间复杂度为O(n^2)2、随机取基准点,能够部分避免1出现的情况,但是最坏情况下,依旧是O(n^2),即有序时,每次随机选的都是两端的元素。3、三数取中取基准点,随机取三个数,用这三个数的中位数作为基准点,常用首尾元素+中间的值这三个数取中。这样能有效避免排序前有序的情况,时间复杂度稳定在O(nlogn)快排优化:1、当排序列表足够小时,使用插入排序代替快排,足够短

2022-01-03 16:25:34 857

原创 装饰器实现2-类的装饰器

def hello(cls): class wrapper(): def __init__(self, *args, **kwargs): print("hello, friends!") self.__wrap = cls(*args, **kwargs) def __getattr__(self, name: str): return getattr(self.__wrap.

2021-12-24 11:34:34 301

原创 装饰器实现1-函数的装饰器

'''Descripttion: 装饰器集合Author: lishaogangversion: Date: 2021-12-24 10:08:54LastEditors: lishaogangLastEditTime: 2021-12-24 10:59:23'''# from _typeshed import Selfimport timefrom functools import wrapsbuffer = []# 正常无参函数装饰器def timeit(func):.

2021-12-24 11:02:26 324

原创 Python类内的cls和self,及单例模式的探究

昨天碰到的问题。当写一个单例模式的时候,可以在init函数里面进行类对象的创建,然后对该对象进行初始化。详情如下:class A(object): _in1 = None __in2 = None instance = None def __init__(self, a): # 若是不使用__new__函数来写单例模式,在__init__函数中添加想关代码 if not self.instance: self.i

2021-12-21 15:19:08 951

原创 两人交替从数组左右两端拿数,求谁会赢

'''Descripttion: 有一个由正整数组成数组,每次只能拿最左边的数或最右边的数, 两个人交替拿数,求先手的和后手的谁会赢Author: lishaogangversion: Date: 2021-12-07 08:38:14LastEditors: lishaogangLastEditTime: 2021-12-07 09:11:06'''def numberGet(arr): def f(arr, l, r): ''' 先手.

2021-12-07 09:14:08 934

原创 Python小知识点

类的实例方法、类方法、静态方法 实例方法:类内带有self参数的方法,self代表类的一个实例 类方法:使用 @classmethod 装饰器的方法,函数的第一个参数必然是cls,代表类对象本身,能通过类本身或实例对象调用。 静态方法:使用 @staticmethod 装饰器的方法,函数的参数没限制,无特殊含义,调用与普通函数相同,调用的时候只需要使用 类名.方法名() 就可以调用。 python使用 ord() 函数来获取字符的ASCII编码值,如: ord('A') #用于求得 ‘A'

2021-11-19 10:26:42 469

原创 python dict中值是复杂类型或简单类型的区别

从下面实验结果可以看出: dict\set 传入简单类型时是值传递,改变原来变量的值并不会影响到dict\set中的值. 比如说对于int整型来说,当改变原来变量值时,会在另一个内存区域申请一块空间, 将其值存储其中。所以,当改变变量的值时,简单类型会另起一块内存空间,复杂类 型则是在原来内存空间上进行更改。 当传入复杂类型时,如自定义的类,改变原来变量的值,dict\set中的值也会改变,因为 ...

2021-11-18 10:34:58 615

原创 归并排序及其应用

'''Descripttion: 归并排序Author: lishaogangversion: Date: 2021-11-15 08:35:33LastEditors: lishaogangLastEditTime: 2021-11-15 09:53:08'''ssum = 0def merge(arr, left, mid, right): res = [] i,j=left, mid while i<mid and j<right: .

2021-11-15 10:29:33 289

原创 Python中关于list和set的搜索效率及底层原理浅析

从上图可以看到,同样情况下,在set中查找大概60纳秒,在list中查找大概440微秒=440*1000纳秒=440000纳秒。所用时间大概是set的6000倍。总结原因:list是顺序存储的,在查找的时候遍历整个数组,所以时间复杂度是O(n) set在底层是被设计成没有值的字典型,即只有key没有value。而字典dict类型在python中的实现是基于hash map哈希表的,有一个映射关系,所以在查找时候,通过哈希函数f(x)就能轻易地找到相应的值,所以时间复杂度是O(1)。在Pytho..

2021-09-05 14:34:03 1773

原创 从代码看for_each和mem_fn

最近在看书的时候,在代码段中看到用mem_fn函数的,不知道它是什么用处,就学习了一下。先贴代码:#include <iostream>#include <vector>#include <algorithm>#include <functional>using namespace std;class ii{private: int i;public: ii(int a):i(a){}; inline void

2021-08-28 12:04:39 200

原创 C++ boost库安装过程(Windows)(亲测有效)

昨天在看《Effective C++》的时候,了解到一个很厉害的C++库,所以决定安装一下它。先从boost官网https://www.boost.org/上下载下来对应的压缩包,并解压到C盘任意目录下(由于需要使用Developer Commend, 然而我自己在里面尝试切换到其它盘的时候,无法切换成功,所以可以的话,尽量把它解压到C盘下。当然,如果你VS是安装到D盘或者其它盘什么的,就解压到相应的盘就可以了) 安装Mecrosoft Visual Studio,从官网下载就可以了https...

2021-06-25 11:26:54 2074

原创 C++测试使用Boost(保姆级别,亲测有效)

由于我使用的是VS2019编译的,所以写的代码,到了VS2010上运行,就出错,所以就回到2019版本上测试。打开VS2019,新建控制台应用程序选择项目存储位置,修改项目名称之后,点击创建就可以了。 点击上面的菜单栏——>项目——>属性中 在打开的页面中,进行以下操作: 在C/C++——>附加包含目录 中添加boost的路径 在链接器——>附加库目录中添加boost目录下stage\lib,点击应用,确定,然后退出了这个框框。 在源文件中的这个文件下写代码(系统

2021-06-25 11:24:09 1613 2

原创 warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled

在linux平台上使用g++编译C++程序的时候出现了“warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]”这样的错误提示。

2021-06-04 10:54:16 838

原创 leetcode每日一题——1486. 数组异或操作

今天看到的第一眼,诶,竟然是个simple的,那应该会很简单的,然后一看题我就傻眼了,异或操作……,两三年前上离散数学的时候学过,很久不用,早就已经忘了。那么先查一下,这个异或运算到底是怎么算的吧。关于异或运算 异或运算最能讲明白的一句话就是“同为0,异为1”,即如果两个位次的数相等,那么这一位的结果就是0,如果这两个位次的数不等,那么这一位的结果就是1。 在C++编程语言里,它的运算符是“^”,那么异或运算的公式可以写成:a ^ b=(~a & b) | (a & ~b)

2021-05-07 17:59:14 181

原创 leetcode每日一题——179.最大数

我的天呐,这些这些题真的是需要刷的,让你自己去想的话,我自己最先想到的是根据像基数排序那样,从每个数的最高位开始进行比较排序,最大的放前面,排好之后在连在一起出结果。但是后面看了题解里面,真的是……,只需要自定义一个比较大小的方法就行了,比如对于两个数a和b,如果a+b>b+a就返回True,a+b<=b+a就返回False。根据这样的比较大小的方法,对整个数组进行排序,然后连在一起就可以了。代码如下:class Solution: def largestNumber(se..

2021-04-13 12:22:34 100

原创 leetcode每日一题——154. 寻找旋转排序数组中的最小值 II

接昨天的“153. 寻找旋转排序数组中的最小值”,题目与153大致相同,只是将之前数组中没有重复元素这个条件换成了有重复数组的,所以解法大致相同。具体看题目https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/最最简便的方法就是从头到尾遍历整个数组,比较第i个元素与第i+1个元素的值,若第i个元素比第i+1个大,说明找到了这个最小元素,返回即可,若是遍历完仍是没有这个情况出现,说明数组内元素当前是从小到大有序

2021-04-09 15:51:18 141

原创 leetcode每日一题——153. 寻找旋转排序数组中的最小值

不知道是好些天没写过算法题了还是怎么回事,今天打开leetcode之后,随便做了道困难程度的题,没多长时间就轻松做出来了,就感觉状态不错,就点开了每日一题,给分到一个中等难度的题,就是这个“153. 寻找旋转排序数组中的最小值”,在看题的过程中就有了大概思路。先放一下题目吧已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,

2021-04-08 17:31:58 142

原创 MOEA/D学习记录

最近在学习MOEA/D算法,在学习过程中学习到一些东西,在此做一下记录。MOEA/D算法是将多目标优化问题转化成一系列小的单目标优化问题,然后利用一定数量的相邻问题的信息使用进化算法对这些子问题进行优化,进行N次迭代后,最后得到一组Pareto解。 算法详解: 输入: 要求解的多目标问题MOP 算法终止条件 子问题数目 均匀分布的权重向量 每个权重向量的邻居个数T 输出:EP 步骤 初始化 设置EP为空 使用欧氏距离计算找到每个元素的T个近

2020-09-19 14:58:22 462

原创 标量函数向量化

最近在学习的过程中,看到numpy有一个很好的功能,可以让原本只能处理单个变量的函数去处理数组形式的数据,即能处理列表形式的多个数据。详细如下:

2020-08-19 16:35:24 478

原创 numpy中array拼接方法

array拼接此处介绍有三种: np.concatenate函数,axis为0时,按行拼接,为1时按列拼接。用法如下: 定义数组a,b np.concatenate([a,b],axis=0) np.vstack与np.hstack函数,np.vstack按行拼接,np.hstack按列拼接。用法如下: np.vstack([a,b]) np.hstack([a,b]) np.r_与np.c_函数,np.r_按行拼接,

2020-08-19 16:11:00 13925

原创 《A Micro-GA Embedded PSO Feature Selection Approach to Intelligent Facial Emotion Recognition》阅读记录

本文是对Kamlesh Mistry等人的《A Micro-GA Embedded PSO Feature Selection Approach to Intelligent Facial Emotion Recognition》一文的阅读记录。其程序复现请参考https://github.com/ShaquallLee/mGAPSO一、目的This paper aims to deal with such challenges to produce effective and optimized

2020-07-25 17:39:31 265

原创 轮盘选择计算选择概率时总适应值F为0的解决方法

在使用遗传算法时,会使用到轮盘选择的方法,在计算选择概率时,当收敛到一定程度,总适应值F趋近于0的时候,公式中分母变为0,此时不可计算,须另寻其它方法。

2020-07-16 17:26:20 521

原创 遗传算法步骤

遗传算法是一种模拟生物自然进化的一种算法,通话对生物进化的模拟,实现对数值函数的模拟计算。它主要分为四个步骤:初始化、杂交、变异和选择。1、初始化初始化即初始化种群中每个个体,在左右边界之间随即取得每个染色体个体中每个基因的值,并根据适应值函数计算每个个体的适应值。在此处可研究一些初始化方法,使得在初始化过程中得到的个体更均匀、更有利于找到最优个体。2、杂交通过随机出一个浮点数r,若r小于杂交概率,则将两个已选染色体各个基因进行杂交,得到一个新的个体。此处课研究一个新的杂交方法,使得其杂交得

2020-07-14 14:21:02 15273

原创 关于tensorflow中tf.enable_eager_execution()相关问题

在使用tensorflow过程中,会有以下几个问题,在未在代码中添加tf.enable_eager_execution()之前会出现以下问题,在添加之后即可解决在运行grads = tape.gradient(loss, variables)这句代码时会报错:AttributeError: 'RefVariable' object has no attribute '_id' 在运行MLP模...

2019-12-28 10:19:31 2026

原创 算法——实现随机拿到30道不重复的20以内的加减法题目

题目描述此时需要给小孩开发一个小程序,可以随机得到30道不重复的20以内的加减法题目,即对于题目来说,无论和还是差或者加数、减数、被减数均要小于20,且要大于等于0的整数。下面用python实现了下面该题目:import randomdef add(): ''' 获取随机的加法 :return: ''' a = random.randint...

2019-12-25 19:54:40 2108

原创 LeetCode题目——667. 优美的排列 II

题目如下:给定两个整数n和k,你需要实现一个数组,这个数组包含从1到n的 n个不同整数,同时满足以下条件:① 如果这个数组是 [a1, a2, a3, ... , an] ,那么数组[|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中应该有且仅有k 个不同整数;.② 如果存在多种答案,你只需实现并返回其中...

2019-09-06 17:33:49 209

原创 将python变量值安全地存储到本地——pickle库

pickle.dump(obj, file[, protocol])  序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。------------------------------------------pickle.load(file)  反序列化对象。...

2019-08-26 18:29:13 354

原创 深度学习——常见简单激活函数(activation function)

在多层神经网络中,每一层的输入与输出呈线性关系,多层的话,该多层神经网络的输入和输出之间关系仅是内部多层隐藏层和输出层多个线性关系式的联合,即输入和输出之间仍是线性关系,这样的话,多层神经网络就跟单层神经网络相同了,做起来就没有什么意义。即全连接层只对数据做仿射变换,而多个仿射变换的叠加依旧是一个仿射变换。在上述情况下,解决该问题的方法之一就是引入非线性变换,如:对隐层变量使用按元素运算的非线...

2019-08-14 18:43:00 414

原创 python中package使用的几个点子

1、一个python的package文件夹中__init__.py 文件是在引用该包时,首先运行的一个文件。正常情况下,我们没有对它进行编辑时,默认为空。2、utils.py 文件中存储一些常见的公用的函数、方法。项目不同,里面内容也不一定相同。在调用时,可直接用 “from utils import 函数名” 即可。但有时候公用的函数过多,一个py文件最多放上400~500行的话,一...

2019-07-17 09:41:51 455

原创 python抽取pdf中内容

这两天一直在windows上做用python(版本是3.6)抽取pdf中内容的东西,主要就是从pdf中提取出里面的字体和表格内容。尝试了好些个库,现在算是找到比较符合我需求(比较好用)的pdf解析的了。在这个过程中,用了以下几个库: PDFminer PDFminer算是一个还算不错的吧,安装直接用pip安装就行。如下: pip install pdfminer3k ...

2019-07-02 19:01:08 1763

原创 One-Hot编码

在编程的过程中,有时候我们需要把现实中具象的东西抽象成用0或者1表示的编码,从而能够让计算机去处理。One-Hot编码(独热编码)就是其中一种编码方式。下面我们来具体介绍:比如我们有三种食物,分别是西瓜、黄瓜、苹果,我们用三个特征值(蔬菜还是水果,大小,形状)来标识他们属于哪一种。 其中 西瓜:【水果,大,圆形】 黄瓜:【蔬菜,不大不小,长条形】 苹果:【蔬菜,小,圆形】 则...

2019-06-27 10:34:25 285

原创 《统计学习方法》读书笔记一

今天开始学习李航老师的统计学习方法一书,在学习过程中,一些比较重要或值得探讨的点会写成博客,与大家分享或共同讨论。统计学习方法是基于数据构建统计模型从而对数据进行预测与分析。统计学习主要由监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcemen...

2019-06-17 09:50:12 219

原创 机器学习——感知机学习方法

1、我们常见的感知机算法就是PLA(perceptron linear algorithm,线性感知机算法)。通过对训练集训练不断修正得到的每个感知机模型,PLA在其生成过程中,不断判断其对未知类型的预测结果是否有错,若是有错,则继续修正,若是没有,则算法停止,得到最后的对未知类型预测准确的感知机。2、口袋算法(Pocket Algorithm),在得到所有的感知机模型之后,将所有的感知机模型...

2019-06-12 10:12:19 1033

原创 机器学习——数据归一化

机器学习中,在数据预处理过程中,通过将数据归一化可以加快梯度下降求最优解的速度,也有可能提高模型计算的精度。常用的归一化方法主要有两种:最值归一化。比如把最大值归一化成1,最小值归一化成-1;或把最大值归一化成1,最小值归一化成0。适用于本来就分布在有限范围内的数据。 其中常用的方法有 线性比例变换法:yi = xi/max(x) 即归一化后结果等于未处理前值除以样本中最大值 ...

2019-06-11 10:43:59 1123

原创 《算法图解》读书笔记

关于分地问题 就是给定一个x*y的一块矩形的土地,求你怎么把它分成一块一块形状大小相同的正方形土地,使得得到的土地面积争取最大。 这个问题与求两个数x、y最大公约数的问题相似。 设x为较大的一条边,则通过无限次计算x , y = y, x%y,直到x%y=0为止,此时就得到了可分成的最小土地的边长y 如一个长为1680,宽为640的土地,计算过程如下 x=1680 y =640...

2019-05-06 20:03:12 148

原创 C#实现整数划分问题——带输出

C#实现整数划分问题,带输出结果

2017-09-12 21:41:26 829

原创 C#实现求n个元素的全排列

C#实现求n个元素的全排列,已规避n个元素中重复元素问题

2017-09-12 21:39:13 2614

原创 asp.net中关于cookie的用法

一、添加cookie 1.单值cookie的写法HttpCookie acookie = new HttpCookie("myCookie");acookie.Value="a";acookie..Expires=DateTime.MaxValue; Response.Cookies.Add(acookie);2.多值Cookie的写法 :HttpCookie cookie1 = ne

2016-07-24 11:02:20 421

addFlag.exe

用于在头像右下角添加国旗图案(当然添加其它图案也可以,给的图片不一样,就有不一样的效果)

2019-09-26

编译原理

编译原理词法分析程序及实验报告!

2018-05-04

python实现汇编格式转换二进制

在运行程序文件夹放入要转换文件,文件中每个汇编格式文字之间用逗号隔开,之后会将每个均转换为二进制

2017-12-21

python获取个性签名

利用python语言,结合爬虫技术,实现设计个性签名。。。。。。。。。。。。。。。

2017-12-21

C#实现解决全排列重复问题

用C#实现全排列问题,解决了输入元素重复问题

2017-09-12

二维码原理

2017-03-16

空空如也

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

TA关注的人

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