- 博客(181)
- 资源 (8)
- 收藏
- 关注

原创 让你大呼 “ 秒哇!” 的动态规划法求解背包问题
目录0/1背包问题完全背包多重背包0/1背包问题#include <iostream>#include<cstdio>#include<string.h>#define N 100#define M 100#define MAX(a,b) a < b ? b : ausing namespace std;...
2019-03-31 21:08:10
1503
转载 Windows下用Git Bash安装tmux
我进行了一些研究,发现GIT Bash使用GING工具的MINGW编译。它仅使用选定的那些。您可以从https://www.msys2.org/安装工具的整个发行版,并运行命令来安装Tmux。然后将一些文件复制到Git的安装文件夹中。下边的操作是你需要做的:安装前面提到的msys2软件包并运行bash shell 使用以下命令安装tmux:pacman -S tmux 转到msys2目录,在我的情况下是C:\msys64\usr\bin 复制tmux.exe并msys-event-2-1-..
2021-01-11 11:34:19
35
转载 window安装gym中Atari游戏出现[WinError 126]问题的解决方法
当在Window环境下使用Gym模块的时候,基础环境都能使用,但是使用Atari游戏模型会报错OSError: [WinError 126] 找不到指定的模块。该问题出在Window10版本的Gym模块只做到了部分支持,要想解决该问题,应执行以下步骤:1.先卸载掉之前安装的gympip uninstall atari-pypip uninstall gym[atari]2.下载 VS build toolshttps://visualstudio.microsoft.com/thank-y
2021-01-11 11:19:51
55
原创 springboot 统一返回数据格式和统一异常处理
数据类package com.william.commonutils;import com.fasterxml.jackson.annotation.JsonInclude;import java.io.Serializable;/** * @program: online_edu * @description: 自定义返回数据类 * @author: William Munch * @create: 2020-11-27 09:55 **//*当我们提供接口的时候, Aj.
2020-12-03 17:12:21
58
原创 Mybatisplus条件构造器
一、wapper介绍Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapper : Entity 对象封装操作类,不是用lambda语法 UpdateWrapper : Update 条件封装,用于Entity对象更新操作 AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取...
2020-11-25 20:49:04
35
原创 spring boot自学笔记【五】整合mybatisplus
一、简介官网:http://mp.baomidou.com/参考教程:http://mp.baomidou.com/guide/MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。二、特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Se...
2020-11-25 20:32:07
41
原创 spring boot自学笔记【四】日志
1、日志框架产生背景小张 开发了一个大型系统; 1、System.out.println("");将关键数据打印在控制台;每次上线都要去掉,很麻烦,就想把输出写在一个文件里 2、框架来记录系统的一些运行时信息;开发了日志框架 ; zhanglogging.jar; 3、又想高大上的几个功能,例如:异步模式?自动归档?xxxx? 就开发了zhanglogging-good.jar 4、那就需要将以前框架卸下来,换上新的框架,重新修改之前相关的API;可以以后再开发zhanglog
2020-11-20 19:26:55
35
原创 windows下启动和中止springboot项目(打好的jar包)
由于项目部署需要在windows服务器上面,写成bat文件执行xxxx.jar文件,正常我们执行后台命令start%JAVA_HOME%\bin\javaw.exe -jar XXX.jar,是能启动程序,但是后台找到的进程是javaw.exe,如果出现多个jar启动,我们不知道停止那个应用,所以需要对进程起名。复制,起名我们使用拷贝javaw.exe重命名的方式:copy "%JAVA_HOME%\bin\javaw.exe" "%JAVA_HOME%\bin\XXX.exe",这样我们就可..
2020-11-18 16:29:14
189
原创 Vue/cli 3.0设置环境变量和模式
设置环境变量的需求通过配置环境变量,可以使我们的开发更加高效。最常见的情景是我们的API请求接口,他常常是分为开发环境,测试环境和生产环境的。如果每一次打包我们都是修改请求接口的地址,那样就显得太愚蠢了。并且如果区分区分环境的地方很多,你可能会有很多疏漏。而通过设置环境变量,统一管理每个环境下的所有变量。在Vur cli 2.0的版本中我们是通过在config文件夹进行配置的,Vue/cli 3.0相对简单,只需要在项目根目录创建.env文件即可。设置环境变量你可以替换你的项目根目录中的下列
2020-11-15 09:42:35
98
原创 spring boot + vue3 前后端分离处理跨域问题
1、什么是跨域请求同域资源:在协议,域名 (或 ip 地址)相同,端口号相同下的请求资源,可以看做是同域资源请求跨域资源:请求的资源只要 是协议、域名(或 ip 地址)、端口号中任意一个不同的资源都可以认为是跨域资源如:端口号不同127.0.0.1:80与127.0.0.1:8888属于跨域域名 (或 ip 地址) 不同127.0.0.1:80与www.baidu.com:80属于跨域2、前后端分离项目中的跨域问题例如:前端 vue项目...
2020-11-13 01:03:40
117
原创 axios 默认配置和实例配置
默认配置在axios配置中存在baseUrl,header等配置,每次做的axios时,不一定所有的配置都要自己写,这时候要做一个默认值,例如:axios.defaults.baseURL ="http://localhost:8080"之后调用如下post方法,请求的接口地址就是http://localhost:8080/useraxios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' }) .
2020-11-12 16:37:33
3572
9
转载 IDEA下springboot+jpa连接oracle数据库
之前用Springboot连接的都是MySQL,这次要求换成Oracle,其实区别不是很大,主要就是改一下配置文件。下面写一个简单的例子,实现springboot对oracle数据库的查询操作。(springboot+jpa实现增删改查网上教程很多)新建Springboot项目新建Spring项目,目录结构如下:新建实体类CityTest:@Entitypublic class CityTest { @Id @GeneratedValue private Lon
2020-11-11 18:54:53
107
转载 不同版本vue-cli区别
目录 vue-cli 命令 项目结构 设置环境变量 (一)vue-cli 命令1. vue-cli下载安装: vue-cli2: npm install vue-cli -g vue-cli3/cli4: npm install -g vue@cli 2. 创建新项目 vue-cli2: vue init webpack 2.0project vue-cli3/cli4: vue create 3.0project 或
2020-11-10 17:34:11
94
原创 spring boot自学笔记【三】配置文件
配置文件的简单介绍springboot 的配置文件的自动载入规则可以从pom里的<artifactId>spring-boot-starter-parent</artifactId>里找到<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactI
2020-11-10 11:08:19
56
原创 vue main.js中app绑定的是index.html还是App.vue中?
问题vue cli默认生成的工程中,main.js绑定了#app,绑定的是index.html中的div还是App.vue中的div?//main.jsimport Vue from 'vue'import App from './App.vue'Vue.config.productionTip = falsenew Vue({ render: h => h(App),}).$mount('#app')// /index.html<body>
2020-11-09 16:15:45
99
原创 以Linux为例,理解操作系统的核心态和用户态
一、用户态的应用程序访问内核态的资源(铺垫基础知识) 如Linux的体系架构所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用...
2020-09-15 14:01:48
232
原创 文件的逻辑结构和物理结构辨析
1.基本概念逻辑结构:指一个文件在用户面前所呈现的形式。又称文件组织。物理结构:指文件在外存上的存储组织形式。这不仅和存储介质的存储性能有关,还与所采用的外存分配方式有关。这里首先关注逻辑结构:实际上讲的就是在文件的内部,逻辑上数据是如何被组织起来的。2.逻辑结构逻辑结构有两种形式:①记录式文件(有结构式文件).②字符流式文件(无结构式文件),也称流式文件。其中,有结...
2020-09-15 13:59:17
5475
原创 扇区(sector),块(block),簇(cluster)
1.硬盘(可以认为硬盘就是磁盘)# fdisk -lDisk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes255 heads, 63 sectors/track, 17844 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes可以看到几个名词:heads/sectors/cyl...
2020-09-15 13:58:43
11002
原创 操作系统扫盲
1.多道程序设计和多重处理有何区别?多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时执行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持。多重处理系统比起单处理系统来说,虽增加了硬件设施,却换来了提高系...
2020-09-15 13:58:20
230
原创 因子分解机FM算法(Factorization Machine)
背景传统的线性模型定义如下式所示,很显然,这里是将各个特征独立考虑,并没有考虑特征之间的关联性。通过引入二阶多项式,如式的模型考虑了特征之间的相互关系。这个公式很好理解,就是把所有的特征都进行组合再给予权值,但这个公式存在一个问题,二阶项参数的训练依赖于大量非零的样本。然而,在实际应用场景中,数据空间十分稀疏,训练得到的二阶交叉项参数是存在很大偏差的。为了解决上述因特征空...
2020-07-30 21:16:38
126
转载 自定义包结构及__init__.py模块和__all__变量的使用
使用python经常会导入外部包,所以自己写一个深层包结构,然后自己调用,会理解的比较深刻首先创建如下图所示的包结构:共有3层文件夹,最里面的一层文件夹下面包含4个有关加减乘除的模块,分别提供了+-*/的运算方法。注意:每一层新建的时候要建Python Package,而不是Directory。一,importimport语句在深层包结构中的用法如下:import myModule.simpleCompute.compute.addFuncprint(myModule.s.
2020-07-29 19:45:24
69
原创 使用tf 时gpu的设置
使用GPU跑tensorflow程序,默认加载所有的GPU,但计算过程中只会用其中一块。也就是你看着所有GPU都被占用了,以为是在GPU并行计算,但实际上只有其中一块在运行;另外的所有显卡都闲着,但其显存都被占用了,所以别人也用不了。不过这种情况通过在程序之前加三行代码就可以解决:import osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"os.environ['CUDA_VISIBLE_DEVICES'] = "0"这行代码加在TensorF
2020-07-29 16:38:47
446
原创 中兴捧月-傅里叶-丰收祭前的游戏(果然菜)
情景描述:在某片遥远的大陆上,居住着两个世代友好的部落,分别是部落A和部落B。他们一起耕耘劳作,互相帮助,亲如一家。久而久之,部落里的每个人都在对方部落里找到了志趣相投,互相欣赏的好朋友。有的人性格热情开朗,好朋友很多;有的人性格沉稳内敛,好朋友相对少一些。每到秋天丰收的季节,这两个部落的人民都会聚集在一起举行盛大的“丰收祭”,来祈祷下一年的风调雨顺。今年的丰收祭马上又要举行了。为了进一步...
2020-07-28 11:35:18
63
转载 报错注入
https://www.cnblogs.com/litlife/p/8472323.html2.select的时候执行floor 此时floor()=0,那么就要看虚拟表有咩有0,没0,那么就要把新的数值填写到虚拟表。那么虚拟表里写入floor()表达式。此时计算表达式floor()=1,所以写入的key为1。3.取第二条数据,select的时候执行表达式floor()=1...
2020-07-27 20:00:52
53
原创 支持多数据库的数据库连接池
前言最近开发一个系统,需要连接sql server 的多个数据库,且具体会有多少数据库是未知的,要连接的数据库是动态变化的。无论是网上的资源,jar包还是框架里提供的现有的方法和我的业务需求不太相符(不排除本人才疏学浅,不知道有比较适合我的业务需求的解决方案的可能性)。反正我就自己实现了一个数据库连接池来适配了自己的需求。代码结构没啥好说的,就是一个类表示数据库连接池,一个类封装了数据...
2020-07-27 13:32:57
40
原创 排坑 Windows10安装两个版本的mysql
背景本来我电脑上装有MySQL8,因为项目需要MySQL5,于是开始装版本,在这里选择5.7步骤下载解压从官网下载5.7.31,并解压配置.ini[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]# 设置3307端口port = 3307# 设置mysql的安装目录basedir=G:\mysql-5.7.31-winx64# 设置mysql数据库的数据的存放目录datadir=G:\mysql
2020-07-20 14:23:26
100
原创 数据结构之链表 #206. 反转链表
#206. 反转链表思路方法一:迭代假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。不要忘记在最后返回新的头引用!方法二:递归递归版本稍微复杂一些,其关键在于反向工作。假设列表的其余部分已经被反转,现在我该如何反转它前面的部分?复杂度分析方法一时间复杂度:...
2020-07-02 13:43:30
129
原创 数据结构之链表 #160. 相交链表
#160. 相交链表思路(借鉴自belinda)一种比较巧妙的方式是,分别为链表A和链表B设置指针A和指针B,然后开始遍历链表,如果遍历完当前链表,则将指针指向另外一个链表的头部继续遍历,直至两个指针相遇。最终两个指针分别走过的路径为:指针A :a+c+b指针B :b+c+a明显 a+c+b = b+c+a,因而如果两个链表相交,则指针A和指针B必定在相交结点相遇。复杂度分析时间复杂度 :O(m+n)。 空间复杂度 :O(1)。备注分析完了题目,找到解题方法后,还要注..
2020-07-01 22:36:03
85
原创 强化学习【八】Actor-Critic
基于价值的强化学习通过学习(近似的)价值函数并采用比如Ɛ-greedy执行方法更新策略; 基于策略的强化学习没有价值函数,直接学习策略; Actor-Critic强化学习既学习价值函数也学习策略函数。Actor-Critic方法简介Actor-Critic的字面意思是“演员-评论”,相当于演员在演戏的同时有评论家指点继而演员演得越来越好。基于Actor-Critic策略梯度学习分为两部分内容: Critic:参数化行为价值函数Qw(s, a) Actor:按照C.
2020-06-15 21:48:08
149
原创 强化学习【七】基于策略梯度的深度强化学习
在行为空间规模庞大或者是连续行为的情况下,基于价值的强化学习将很难学习到一个好的结果,这种情况下可以直接进行策略的学习,即将策略看成是状态和行为的带参数的策略函数,通过建立恰当的目标函数、利用个体与环境进行交互产生的奖励来学习得到策略函数的参数。策略函数针对连续行为空间将可以直接产生具体的行为值,进而绕过对状态的价值的学习。在实际应用中通过建立分别对于状态价值的近似函数和策略函数,使得一方面可以基于价值函数进行策略评估和优化,另一方面优化的策略函数又会使得价值函数更加准确的反应状态的价值,两者相互促进最终.
2020-06-15 15:49:58
289
原创 强化学习【六】价值函数的近似表示 (内含DQN)
前言本章之前的内容介绍的多是规模比较小的强化学习问题,生活中有许多实际问题要复杂得多,有些是属于状态数量巨大甚至是连续的,有些行为数量较大或者是连续的。这些问题要是使用前几章介绍的基本算法效率会很低,甚至会无法得到较好的解决。本章就聚焦于求解那些状态数量多或者是连续状态的强化学习问题。解决这类问题的常用方法是不再使用字典之类的查表式的方法来存储状态或行为的价值,而是引入适当的参数,选取恰当的描述状态的特征,通过构建一定的函数来近似计算得到状态或行为价值。对于带参数的价值函数,只要参数确定了,对于一个
2020-06-14 14:36:03
227
原创 强化学习【五】不基于模型的控制(内含Qlearning 和sarsa)
前言前一章内容讲解了个体在不依赖模型的情况下如何进行预测,也就是求解在给定策略下的状态价值或行为价值函数。本章则主要讲解在不基于模型的条件下如何通过个体的学习优化价值函数,同时改善自身行为的策略以最大化获得累积奖励的过程,这一过程也称作不基于模型的控制。通过本讲的学习,我们将会学习到如何训练一个Agent,使其能够在完全未知的环境下较好地完成任务,得到尽可能多的奖励。生活中有很多关于优化控制的问题,比如控制一个大厦内的多个电梯使得效率最高;控制直升机的特技飞行,机器人足球世界杯上控制机器人球员,围棋
2020-06-13 10:42:29
253
原创 强化学习【四】不基于模型的预测
前边讲解了如何应用动态规划算法对一个已知状态转移概率的MDP进行策略评估或通过策略迭代或者直接的价值迭代来寻找最优策略和最有价值函数,同时也指出了动态规划算法的一些缺点。【四】【五】两部分将讲解如何解决一个可以被认为是MDP、但却不掌握MDP具体细节的问题,也就是讲述个体如何在没有对环境动力学认识的模型的条件下如何直接通过个体与环境的实际交互来评估一个策略的好坏或者寻找到最优价值函数和最优策略。其中本文将聚焦于策略评估,也就是预测问题;【五】将利用本讲的主要观念来进行控制进而找出最优策略以及最有价值函数。.
2020-06-11 18:36:36
403
原创 强化学习【三】动态规划寻找最优策略
简介动态规划算法是解决复杂问题的一个方法,算法通过把复杂问题分解为子问题,通过求解子问题进而得到整个问题的解。在解决子问题的时候,其结果通常需要存储起来被用来解决后续复杂问题。当问题具有下列特性时,通常可以考虑使用动态规划来求解:第一个特性是一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解;子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复。马尔科夫决定过程(MDP)具有上述两个属性:Bellman方程把问题递归为求解子问题,价值函数就相当于存
2020-06-09 15:55:54
406
转载 平衡二叉树的构造
平衡二叉树实现的实例选取一组数据分别为2,1,0,3,4,5,6,9,8,7的10个结点来构造平衡二叉树。首先数据为2的结点作为根结点插入,接着插入1,仍是平衡的,再插入0是,2的平衡因子变为2,此时出现了不平衡,因此需要进行调整,最低不平衡结点为2,属于LL型,调整过程如图1所示。接着插入3,是平衡的,再插入4,此时出现了不平衡,结点 1 和 2的平衡因子都为 -2,结点2为最低不平衡结点,属于RR型,调整过程如图2所示接着插入5,此时结点1 的平衡因子为 -2,导致不平衡,结点1..
2020-06-07 16:32:34
107
原创 强化学习【二】马尔科夫决策过程
求解强化学习问题可以理解为如何最大化个体在与环境交互过程中获得的累积奖励。环境的动力学特征确定了个体在交互时的状态序列和即时奖励,环境的状态是构建环境动力学特征所需要的所有信息。当环境状态是完全可观测时,个体可以通过构建马尔科夫决策过程来描述整个强化学习问题。有时候环境状态并不是完全可观测的,此时个体可以结合自身对于环境的历史观测数据来构建一个近似的完全可观测环境的描述。从这个角度来说,几乎所有的强化学习问题都可以被认为或可以被转化为马尔科夫决策过程。正确理解马尔科夫决策过程中的一些概念和关系对于正确理解.
2020-06-06 18:37:35
126
原创 强化学习【一】 初识
视频课链接 github链接RL概述:一个【agent】在不确定的【environment】中极大化自己的【reward】agent可能不能立刻获得反馈(不像监督学习进行分类后就能有正确错误的反馈)与监督学习的对比:数据具有连续性,并不是iid(独立正态分布) learner需要自己发现有奖励的行为,然后去采取该行为。 需要不断试错,需要在exploration(采取新的行为)和exploitation(采取当前知识下的最大奖励的行为)之间平衡 没有superviso...
2020-06-06 14:11:08
127
原创 Visual Studio 下配置属性页的一些说明
Visual Studio 下配置第三方C/C++库的方法一些常用的函数、类等会被封装打包成库(以 OSG为例),以供开发人员使用。为了能正确调用所需的库,需先告知所用的编程开发工具(以 Visual Studio 为例)和操作系统(以 win 10 为例)在哪里寻找所需的库,这就是所谓的配置第三方库。首先明确几个概念概念1:在程序的源文件(如 .c 和 .cpp 文件)编辑阶段,为了...
2020-03-31 22:25:55
739
原创 Win10-VS2017 OSG环境搭建
一、资料准备1、OSG源码下载地址(OpenSceneGraph-3.6.5 release 稳定版本)。2、OSG第三方依赖库下载地址(3rdParty_VS2017_v141_x64_V11_full)。注:第三方库版本必须与Visual Studio版本相对应,本文所用只适用于Visual Studio2017 x64,平台工具集版本为v141的情况下。3、数据包下载地址(Op...
2020-03-27 13:21:50
434
转载 [tf]sess.run机制
在一个sess.run()环境中,一个大图里面的节点只会计算一次,哪怕有c->a->b这种依赖关系,运行sess.run([a,b])这种时候,a也只会被执行一次。其内部的机制是:先查看图中的依赖关系,得到本次sess.run()需要计算图中那些节点,然后进行一次计算,返回计算的a,b的值。 如果是多次调用sess.run()那么就会计算多次。 一个生动的例子:和addop有依赖关...
2020-03-19 22:43:58
193
lukeall-4.10.0.jar
2020-09-17
qt qss主题样式
2019-04-27
组合优化算法.zip
2019-07-22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝