Home

【leetbook】动态规划精讲-目录

动态规划精讲1 01 概述 02 动态规划简介 动态规划的背景 解决动态规划问题的思考过程 动态规划与其它算法的关系 03 线性动态规划 线性动态规划简介 单串 双串 矩阵 无串线性问题 总结 04 前缀和 前缀和简介 求区间和 实现前缀和问题 数据结构维护前缀和 运算推广 差分 05 区间动态规划 区间动态规划简介 区间动态规划经典问题 回文相关问题 区间动态规划其它问题

算法工程师面试体系

初级算法工程师面试体系 AI基础(必考) 深度学习 DNN CNN RNN GNN 生成模型 GAN 机器学习 线性模型 树模型 集成学习 XGBoost LightGBM CatBoost 无监督学习 降维 采样 强化学习 概率模型 EM GMM HMM CRF 领域算法 计算机视觉 NLP 语音 视频 多模态 推荐系统 计算广告 风控/反作弊 AI框架 PyTorch

AI工程体系

AI系统 业界方案 训练系统 推理系统 AB测试系统 迭代系统 标注系统 部署系统 业务系统 规则系统 决策系统 模型部署 服务端部署 onnx TensorRT PMML 移动端部署 tflite coreML 模型加速 剪枝 蒸馏 量化 模型测试 模型服务 模型监控 计算机系统 组成原理 体系结构 操作系统 虚拟化 并发 持久化 系统编程 网络 计算机网络 网络编

泛型数组列表ArrayList

摘要: 本文是《Java核心技术 10th》中泛型数组列表 ArrayList 及其周边知识点的要点总结【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文是《Java核心技术1》第10版 【Chap5

Java核心技术1-反射

摘要: 本文是《Java核心技术 10th》中反射的要点总结【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 反射反射库是一个提供能够动态操纵 Java 代码的工具。 能够分析类能力的程序称为反射(ref

Java核心技术1-Object类

摘要: 本文是《Java核心技术 10th》中 Object 类的要点总结【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文是《Java核心技术1》第10版 【Chap5 继承】中关于 Object

Java核心技术1-继承

摘要: 本文是《Java核心技术 10th》中继承的要点总结【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文是《Java核心技术1》第10版 【Chap5 继承】 的要点总结。由于此前在 C++ 中

Java速查表

摘要: 记录 Java 中的一些常见概念和操作的速查表【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 格式化字符串String 类的 format 方法,用于创建格式化字符串,以及连接多个字符串对象,与

Java核心技术1-对象与类

摘要: 本文是《Java核心技术 10th》中对象与类的要点总结【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文是《Java核心技术1》第10版 【Chap4 类和对象】 的要点总结。由于此前在 C

Shell操作集锦

摘要: 本文记录 Shell 中常见的操作,持续更新【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 不断从终端读取用户输入的正数,返回相加的和1234567891011121314#!

shell 的 break 和 continue

摘要: 本文简单了解一下在 shell 脚本中的 continue 和 break 与 C++/Java/Python 中的不同【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在 C++

Bash脚本中的set命令

摘要: 本文简单了解一下在 shell 脚本中 set 命令的作用和用法【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings Bash 脚本执行时,会创建一个子 Shell。 1bash s

Bash-Shell速查表

摘要: 本文记录 Bash Shell 中常见的概念和操作【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 参考链接: https://devhints.io/bash 基本操作条件执行12git co

C++操作集锦

摘要: 本文记录常见的 C++ 中的操作,持续更新【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings string 转 char*1234string str = "hello";const char *p

字符串哈希的哈希函数

在文章 字符串哈希 中,我们探讨了字符串哈希,及其在字符串相关的经典问题中的应用。 字符串哈希是哈希中最常见的形式,在搜索引擎创建索引的时候大量的计算消耗在哈希生成和查找上面,因此选择一个又快又好的哈希函数对性能提升至关重要。 本文记录几种字符串哈希中常用的哈希函数,这些哈希函数都是网上零散文章中摘录的,有一些在 大数据应用中的概率算法与数据结构 中有提到,有一些在 Redis 等框架中有用到。

频率派和贝叶斯派

摘要: 频率派和贝叶斯派的区别和联系。【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在机器学习中,我们把概率引入进来是比较自然的事情,本文我们探讨一下频率派和贝叶斯派的区别和联系。

机器学习资料汇总

资料的侧重点 频率派: 统计机器学习 贝叶斯派: 概率图模型 书小蓝书微信读书 侧重点是频率派的统计机器学习。 频率:感知机;kNN;朴素贝叶斯;决策树;逻辑回归;SVM;Boosting 贝叶斯:EM;隐马尔可夫;条件随机场 西瓜书公式推导部分(微信读书)百度网盘(t48j) 比较全面,不特别深入,没有频率/贝叶斯的倾向。 PRML本站链接 侧重点是贝叶斯派的概率图模型。 频率:线性回

机器学习白板推导系列

作者及项目信息B 站空间github 仓库 参考笔记: github: MachineLearningNotes 视频汇总 序号 内容 笔记 1 开篇 机器学习资料汇总;频率派与贝叶斯派 2 数学基础 - 3 线性回归 - 4 线性分类 - 5 降维 - 6 SVM - 7 核方法 - 8 指数族分布 - 9 概率图模型基础 - 10 EM算法 -

【合集】马昱春组合数学

摘要: 这是马昱春组合数学公开课的笔记合集。2020 年写的。【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 其它已完结的合集参见 合集栏 组合数学1-排列组合 组合数学2-母函数,递推关系 组合数学

OpenCV操作集锦

读取 URL 视频流1234567891011url = "http://39.105.154.142:8080/download/videos/myvideo.mp4"videoCapture = cv2.VideoCapture(url)success, frame = videoCapture.read()while success and cv2.waitKey(1) == -1:

Jupyter-Notebook操作集锦

基础Jupyter 项目中的主要组件就是 notebook,这是一种交互式的文档类型,可以用于编写代码、文本(可以带标记)、数据可视化以及其他输出。Jupyter notebook 与内核交互,内核是编程语言的交互式计算协议的实现。Python 的 Jupyter 内核使用 IPython 系统进行内部活动。 Jupyter Notebook 架构示意图 快捷键显示对象信息显示变量 a 的信息

conda和pip操作集锦

Conda查看当前镜像源1conda config --show-sources 设置镜像源1conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ Pip查看当前镜像源1pip config list 设置镜像源1pip config set global.index-url ht

【天池】练习赛-贷款违约预测-特征工程

资料天池训练营DataWhale数据挖掘-各个方向DataWhale数据挖掘-金融风控 比赛地址 数据分析部分在文章 【天池】练习赛-贷款违约预测-数据分析 中,本文是特征工程部分。 当有了宽表之后,在模型离线开发中,特征工程阶段输入原始数据,输出入模数据。 过程中要注意哪些中间数据需要保存(注意 df_test 的处理),提供给模型上线后线上特征工程中使用。 特征工程 数据预处理 缺失值的填充

几份机器学习入门材料的知识点索引

CS229 小蓝书 西瓜书 CS229 线性回归 平方损失 + 最小二乘 梯度下降 更新方式: 批梯度下降 vs. 增量梯度下降 设计矩阵: 不可逆 vs. 伪逆 平方损失的概率解释 局部加权线性回归 LWR (类似 kNN) Logistic 回归 MLE + 梯度下降 感知机 MLE + 牛顿法 Hessian 矩阵 GLM 指数分布族 贝努力、高斯、泊松 GLM 多项分布与

【天池】练习赛-贷款违约预测-数据分析

资料天池训练营DataWhale数据挖掘-各个方向DataWhale数据挖掘-金融风控 比赛地址 任务解析赛题以预测用户贷款是否违约为任务,数据集如下: sample_submit.csv(2MB) testA.csv(41MB) train.csv(166MB) 下载链接如下 12链接: https://pan.baidu.com/

回炉-vim实用技巧-vim模式

《vim使用技巧》 【vim模式】部分,一共 4 个模式 31 个技巧 Chap2 普通模式 技巧7 停顿时请移开画笔 技巧8 把撤销单元切成块 技巧9 构造可重复的修改 技巧10 用次数做简单的算术运算 技巧11 能够重复,就别用次数 技巧12 双剑合璧,天下无敌 Chap3 插入模式 技巧13 在插入模式中可即时更正错误 技巧14 返回普通模式 技巧15 不离开插入模式,粘贴寄存器中的

算法导论第四版

本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。 全书各章自成体系,可以作为独立的学习单元。算法以伪代码的形式描述;说明和解释力求浅显易懂,不失深度和数学严谨性。 本书在 2012 年出了第三版,当时第3版的主要变化为 新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录。 修订了递归式(现在称为“分治策略”)那一章的内容,

机器学习的错误分析

Carry out error analysis Cleaning up incorrectly labeled data Build your first system quick and then iterate Training and testing on different distribution Bias and Variance with mismatched data dist

构建机器学习项目的一些经验

Andrew Ng 《构建机器学习项目》手写笔记。共 8 页。 1 Why ML Strategy 得到初版模型后,希望从多方面优化 2 Orthogonalization 正交化方法 3 单值评价指标 4 优化指标和满意指标 5 Train/Dev/Test 分割 6 Dev/Test 的分配量 7 动态改变评价标准 8 Why Human-level performance 人类级别的性能

编译原理-词法分析笔记

计算思维 抽象 自动化 分解 递归 权衡 保护、冗余、容错、纠错、恢复 启发式推理 不确定情况下的规划、学习和调度 编译程序流程总览 词法分析器 语法分析器 语义分析 中间代码生成 优化 目标代码生成 表格管理 出错处理 词法分析 高级语言及其语法描述 几个概念:字母表、字符、字(字符串)、空字 字的集合的运算 上下文无关文法 产生式规则 推导、语法树 句型、句子、语言 向左推导

通过浏览器访问云服务器上的资源

假设有一台云服务器,公网 IP 为 39.105.154.142。服务器中有一个资源,路径为 /root/download/images/24.jpeg。现在我们想通过浏览器访问这个资源,本文解决这个问题。 主要涉及到 Tomcat,大致步骤如下 1、在服务器上安装 tomcat2、进入tomcat目录,修改配置文件: server.xml3、保存后重启 tomcat4、在浏览器中访问资源 st

考研数学常见方法与公式-线性代数

n阶方阵行列式 数字型行列式计算 证明行列式为 0 的方法 代数余子式求和 n阶方阵 A 可逆的充要条件 伴随矩阵的性质 逆矩阵、伴随矩阵、转置的若干等式 求矩阵的幂的方法 求矩阵的逆的方法 初等矩阵 P 的性质 矩阵的秩的性质 齐次线性方程组的解 非齐次线性方程组的解 向量组的线性相关性与线性方程组解的关系 AB = C,C 的行向量组和列向量组两方面含义 线性相关和线性无

考研数学常见方法与公式-高等数学

有界、无界的充分条件 等价无穷小 带皮亚诺余项的泰勒公式 洛必达法则使用条件 求函数极限 变限积分求导 求数列极限 初等函数 n 阶导 微分与增量的关系 极限与无穷小的关系 泰勒级数 渐近线 不等式的证明 拉格朗日余项和皮亚诺余项的比较 零点的证明 证明存在某个值,满足不等式条件 变限积分的性质 基本积分 基本微分 几种典型的换元法 定积分换元 分部积分 定积分结论 积分不等式的证明 积分零点问

考研线性代数笔记

2014 年考研线性代数笔记。共 55 页。 行列式 2,3 阶行列式的对角线法则 行列式的性质 余子式、代数余子式 常见的行列式 拉普拉斯定理 行列式的乘积法则 克莱默法则 矩阵 特殊矩阵 矩阵的运算 数乘的性质 乘法的性质 方阵的幂及其性质 矩阵的转置及其性质 矩阵的共轭及其性质 方阵的迹及其性质 矩阵的可逆及其充要条件 伴随矩阵 可逆矩阵的性质 矩阵的分块 矩阵的初等变换 阶梯型

考研高等数学常考概念及其充分条件,必要条件

常见概念及其充分条件、必要条件 有界性 数列的极限 函数极限 无穷小 无穷大 无穷小的阶 连续 间断点 最值 导数 微分 微分中值定理 罗尔 拉格朗日 柯西 洛必达 泰勒公式 单调性 凹凸性 拐点 极值 曲率 曲率中心 原函数 不定积分 定积分 可积 积分上限函数 牛顿-莱布尼茨定理 反常积分 一元函数极限 二元函数极限 偏导数 全增量 全微分 偏增量

通过含参数函数实现策略-策略梯度

在文章 在Q学习中应用含参数函数实现价值近似 中,我们学习了如何在 Q 学习中应用含参数函数实现价值近似。具体地,我们根据 使用神经网络实现强化学习的框架 首先创建一个根据价值函数选择行动的智能体,ValueFunctionAgent,然后将其用在了 gym 的 CartPole 中。 策略也可以用含参数函数表示,这是一种以状态为自变量,输出行动或行动概率的函数。 本文我们先从理论上研究在用含参数

【合集】C++Primer-总览

摘要: 这是《C++ Primer 5th》的笔记合集。2017 年写的。【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 其它已完结的合集参见 合集栏 《C++ Primer 5th》 C++ Pri

C++Primer-高级主题

标准库特殊设施 tuple bitset regex random io 用于大型程序的工具 异常处理 命名空间 多重继承、虚继承 特殊工具和技术 控制内存分配 RTTI 枚举类型 类成员指针 嵌套类 Union: 一种省空间的类 局部类 $17 标准库特殊设施 tuple bitset regex random io $18 用于大型程序的工具 异常处理 命名空间 多重继承

C++Primer-类设计者的工具

拷贝控制 拷贝、赋值与销毁 拷贝构造函数 拷贝赋值运算符 析构函数 三/五法则 使用=default 阻止拷贝 拷贝控制和资源管理 行为像值的类 定义行为像指针的类 交换操作 拷贝控制示例 动态内存管理类 对象移动 右值引用 移动构造函数和移动赋值运算符 右值引用和成员函数 操作重载与类型转换 基本概念 输入和输出运算符 重载输出运算符<< 重载输入运算符>

C++Primer-C++11新特性

long long type List initialization nullptr literal constexpr variable using 别名声明 auto decltype range for cbegin, cend in-class initializer vector for vector vector 对象的 list initialization 标准库的 begin(

C++Primer-标准库

IO库 IO类 IO对象无拷贝或赋值 条件状态 管理输出缓冲 文件输入输出 使用文件流对象 文件模式 string流 使用istringstream 使用ostringstream 顺序容器 顺序容器概述 容器库概览 迭代器 容器类型成员 begin和end成员 容器定义和初始化 赋值和swap 容器大小操作 关系运算符 顺序容器操作 向顺序容器添加元素 访问元素 删除元

C++Primer-基础

变量和基本类型 基本内置类型 算术类型 类型转换 字面值常量 变量 变量定义 变量声明和定义的关系 标识符 名字的作用域 复合类型 引用 指针 理解复合类型的声明 const限定符 const的引用 指针和const 顶层const constexpr和常量表达式 处理类型 类型别名 auto类型说明符 decltype类型指示符 自定义数据结构 编写自己的头文件

【逆向思维】力扣780-到达终点

算法要点: 逆向思维,参考文章 逆向思维。 $1 题目题目链接780. 到达终点 题目描述给定四个整数 sx , sy ,tx 和 ty,如果通过一系列的转换可以从起点 (sx, sy) 到达终点 (tx, ty),则返回 true,否则返回 false。 从点 (x, y) 可以转换到 (x, x+y) 或者 (x+y, y)。 12提示:1 <= sx, sy, tx, ty

将可执行文件转换为Linux服务

假设我们有一个可执行文件,可能是 c++ 经过编译链接后形成的,也可能是一个 shell 脚本经过 chmod 之后形成的。现在我们想将其转换为 Linux 的服务,然后通过 service ... start 启动。 下面我们以 shell 脚本 jupyter.sh 为例,看一下 /etc/init.d 中的文件的写法。 假设 jupyterd.sh 的内容如下 (可执行脚本的内容不重要,主要

分治-逆序对个数

在文章 分治 中,我们详细总结了分治法的内容,分治法有一个重要应用是归并排序。关于归并排序的算法细节和代码模板,可以参考这篇文章: 数组排序。 一般写排序不会写归并排序,但是很多分治算法都基于归并排序的思想:分的阶段进行排序,合的阶段做归并同时借助有序的特性更高效地统计目标信息。 这种思想最经典的问题是逆序对的个数。本文我们就来看一下逆序对的问题。 逆序对问题在 leetcode 上有一个变种翻转

九坤量化人工智能比赛

本文给大家推荐一个最近的 AI 竞赛: 九坤贪吃蛇 AI 对抗赛。参考 这个链接。 九坤此前已经举办过 4 次比赛,主题感觉都还不错。下面是一个简要的总结。 第1期: 模拟期权做市交易大赛,选手需要在期权合约上完成做市义务,并提供成交量,增强市场流动性。第2期: 验证码识别大赛第3期: 线上德州扑克AI程序对抗赛第4期: 程序化交易,提供真实股票市场日频数据供玩家进行策略开发并进行交易。允许做多和

将深度学习用于价值近似-DQN

在文章 在Q学习中应用含参数函数实现价值近似 中,我们学习了如何在 Q 学习中应用含参数函数实现价值近似。具体地,我们根据 使用神经网络实现强化学习的框架 首先创建一个根据价值函数选择行动的智能体,ValueFunctionAgent,然后将其用在了 gym 的 CartPole 中。 本文我们进一步将 ValueFunctionAgent 改进为 DeepQNetworkAgent,增加网络的复

金融科技风控人才的各项能力

胜任力模型胜任力模型(competence model)就是针对特定职位表现优异的要求组合起来的结构,是一系列人力资源管理与开发实践(如工作分析、招聘、选拔、培训与开发、绩效管理等)的重要基础。 麦克利兰(美国社会心理学家)认为胜任力模型是:“一组相关的知识、态度和技能,它们影响个人工作的主要部分、与工作绩效相关、能够用可靠标准测量和通过培训和开发而改善”。 胜任力模型各种流派的观点非常多,尤其

在Q学习中应用含参数函数实现价值近似

前面我们系统学习了强化学习的各种基础算法,总结可以参考文章 强化学习方法的分类总结。 其中 Q 学习、蒙特卡洛方法、SARSA、Actor Critic 等方法我们都有实现过代码模板: 蒙特卡洛方法、Q 学习: 时序差分与蒙特卡洛方法, Q学习 SARSA: 经验用于更新价值还是更新策略 — Q学习与SARSA Actor Critic: 组合使用基于价值和基于策略 — Actor Critic

极简神经网络-深度强化学习预备知识

本文我们极简地过一下神经网络的必要知识。虽然是深度学习的内容,但是本文主要是为【使用神经网络实现强化学习的框架】铺垫必要的神经网络知识。主要内容也来自《用Python动手学强化学习》这本书。 主要内容如下 从 y = ax + b 引入,用 TensorFlow 实现这个式子,并实现批量地将数据输入这个式子。 单层全连接网络,了解单层神经网络与 y = ax + b 是等价的,然后用 Keras

使用神经网络实现强化学习的框架

写在前面在文章 强化学习方法的分类总结 中,我们总结了强化学习的各种学习方式,其中我们详细研究了 Q 学习、蒙特卡洛方法、SARSA、Actor Critic 这四种方法的原理,并实现了代码模板。 回顾前面的各种方法的原理和代码模板,我们发现其中的一个共同要点是计算 Q 值,而实现方式都是以 Q[s][a] 的方式保存各种状态下各种行动的价值。 当状态和行动增加,这种方式变得不可行;此外对于连续

强化学习方法的分类总结

各种主流的无模型方法之前我们系统学习了通过自己行动获得经验来指定行动计划的无模型方法。 在利用经验时,需要注意以下 3 点 平衡经验的积累与利用 根据实际奖励还是预测来修正计划 用经验来更新价值近似还是策略 第一点解决的是经验的积累与利用的折中问题,Epsilon 贪心算法是一种常见方法,我们在文章 经验的积累与利用-Epsilon贪心 中进行了讨论。 第二点解决的是经验如何计算的问题,TD

组合使用基于价值和基于策略 -- Actor Critic 学习模式

在文章 强化学习环境框架-从一个迷宫环境看MDP的要点 中,我们总结了强化学习的基本概念,以及作为强化学习机制的 MDP,并且以 grid 为例实现了 MDP 环境的代码框架。 有了 MDP 环境之后,我们就要解决如何在其中选择最优行动的问题,也就是 MDP 环境的代码框架中的 agent.policy 方法的实现,具体来说就是价值的计算方法(价值近似)和基于价值近似的行动选择方法(策略)。 当

经验用于更新价值还是更新策略 -- Q学习与SARSA

在文章 强化学习环境框架-从一个迷宫环境看MDP的要点 中,我们总结了强化学习的基本概念,以及作为强化学习机制的 MDP,并且以 grid 为例实现了 MDP 环境的代码框架。 有了 MDP 环境之后,我们就要解决如何在其中选择最优行动的问题,也就是 MDP 环境的代码框架中的 agent.policy 方法的实现,具体来说就是价值的计算方法(价值近似)和基于价值近似的行动选择方法(策略)。 当

时序差分与蒙特卡洛方法, Q学习

在文章 强化学习环境框架-从一个迷宫环境看MDP的要点 中,我们总结了强化学习的基本概念,以及作为强化学习机制的 MDP,并且以 grid 为例实现了 MDP 环境的代码框架。 有了 MDP 环境之后,我们就要解决如何在其中选择最优行动的问题,也就是 MDP 环境的代码框架中的 agent.policy 方法的实现,具体来说就是价值的计算方法(价值近似)和基于价值近似的行动选择方法(策略)。 当

二分/手撕平衡树/分治/stable_sort

本文我们看一个排序的变种问题。跟排序一样,本题的解法也非常多,并且每个算法都是主流算法,除了平衡树以外,其它的算法代码量都不大,很适合面试。涉及到的算法如下。 二分 平衡树 分治 stable_sort 其中第四个 stable_sort 本质上就是第三个算法: 分治,因为在 STL 中 stable_sort 是归并排序。注意不能用 sort,因为快速排序不能保证最坏情况下只需要调用 O(N

手撕平衡树-Treap

此前,我们已经写过不少关于树的文章,包括二叉树、二叉查找树、平衡树。 二叉树 树的DFS遍历 树的BFS遍历 二叉树的建树 二叉查找树 二叉查找树的中序遍历和前驱后继 手撕平衡树-二叉查找树BST 手撕平衡树-数组模拟链表实现二叉查找树 平衡树 手撕平衡树-大小平衡树SBT 满足 BST 性质,且中序遍历序列相同的二叉查找树不是唯一的。这些 BST 维护的是相同的一组数值。 因此我

手撕平衡树-数组模拟链表实现二叉查找树

本文我们用数组模拟链表的方式实现二叉查找树,并形成代码模板。 关于二叉查找树,在文章 手撕平衡树-二叉查找树BST 中,我们学习了二叉查找树的定义,基于链表的实现,给出了 leetcode 上关于 BST 的题目列表,并且引入了节点旋转操作。 关于数组模拟链表,在文章 用数组模拟双向循环链表 中,我们学习了用数组模拟的方式实现链表的方法,并在一道题上进行了实践,然后在文章 结合链表容易删除的特点使

经验的积累与利用-Epsilon贪心

在文章 强化学习环境框架-从一个迷宫环境看MDP的要点 中,我们总结了强化学习的基本概念,以及作为强化学习机制的 MDP,并且以 grid 为例实现了 MDP 环境的代码框架。 有了 MDP 环境之后,我们就要解决如何在其中选择最优行动的问题,也就是 MDP 环境的代码框架中的 agent.policy 方法的实现,具体来说就是价值的计算方法(价值近似)和基于价值近似的行动选择方法(策略)。 当

随机数据生成与对拍

随机数据生成头文件 cstdlib(stdlib.h) 包含 rand 和 srand 两个函数,以及 RAND_MAX 常量。 RAND_MAX 是一个不小于 32767 的整数常量,其值与操作系统,编译器环境有关。一般在 windows 中为 32767,在类 Unix 系统中为 2147483647。 rand() 返回一个 0 ~ RAND_MAX 之间的随机整数。 srand(seed)

差分的应用

在文章 【模板】前缀和与差分 中,我们介绍了前缀和与差分的算法思想和代码模板。并在文章 前缀和问题分类汇总 中分类罗列了 leetcode 中的前缀和的题目列表。 差分与前缀和是一对互逆运算,对于一个数列 A[0..n-1],它的差分数列 B[0..n-1] 定义为 B[0] = A[0] \\ B[i] = A[i] - A[i - 1] \quad 0 差分数列的前缀和数列就是原数列 A

递归的机器实现

在文章 递归 中,我们讨论了与递归的相关的问题,并给出了题目列表。基于递归的两个最典型的算法是回溯和分治。 对于回溯,在文章 枚举 中,我们通过若干 leetcode 的题目总结了多项式、指数、排列、组合型枚举。在文章 回溯法入门-递归实现指数,排列,组合型枚举 中,我们通过 acwing 的三道模板题把递归实现指数、排列、组合的代码放到了一起进行对比。 对于分治,在文章 分治 中,我们系统学习了

分形与分治

什么是分形分形,具有以非整数维形式充填空间的形态特征。(关于非整数维的含义和理论,可以看后面介绍的资料)。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。 分形是一个数学术语,也是一套以分形特征为研究主题的数学理论。分形理论既是非线性科学的前沿和重要分支,是研究一类现象特征的新的数学分科,相对于其几何形态,它与微分方程与

枚举和找规律

算法要点 找规律 模拟 位运算 题目描述95. 费解的开关 25 盏灯排成一个 5 * 5 的方形。 每一个灯都有一个开关,游戏者可以改变它的状态。 每一步,游戏者可以改变某一个灯的状态。 游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。 例如 下面这种状态10111011011011110

MDP的动态规划解法-策略迭代和价值迭代

在文章 强化学习环境框架-从一个迷宫环境看MDP的要点 中,我们总结了强化学习的基本概念,以及作为强化学习机制的 MDP,并且以 grid 为例实现了 MDP 环境的代码框架。 有了 MDP 环境之后,我们就要解决如何在其中选择最优行动的问题,也就是 MDP 环境的代码框架中的 agent.policy 方法的实现,具体来说就是价值的计算方法(价值近似)和基于价值近似的行动选择方法(策略)。 当

一些数值线性代数的资源

fastai 数值线性代数教程这份教程来自于旧金山大学的分析学硕士 2017 暑期课程(为毕业班致力成为数据科学家的学生开设的)。该课程使用 python 和 jupyter 笔记本进行教学,在大多数课程中使用 scikit learn 和 numpy 等库,以及在一些课程中使用 numba(一个将 python 编译为 C 以提高性能的库)和 pytorch(一个替代 numpy 的 GPU 库

一些线性代数的资源

MIT 18.06 官网 B站 讲义 Introduction to Linear Algebra 5thMIT18.06 的 TextBook。 官网 主要内容 Introduction to vectors Solving Linear Equations Vector Spaces and Subspaces Orthogon

【分治】A的B次方的所有约数之和

在文章 分治 中,我们系统学习了分治算法,了解了分治的思想和流程,以及研究分治算法时间复杂度的主定理,然后用分治算法解决了几道 leetcode 的题目,最后提到了分治与减治和搜索的区别和联系。在文章 减治法 中,我们讨论了减治法相关的话题。 本文我们来看一个跟数论有关的问题,乍一看跟减治没关系,但是经过分析和拆解后,就容易想到减治了。 问题 97. 约数之和 求 $A^{B}$ 的所有约数之和