首页
精选文章动态规划查看全文动态规划(Dynamic Programic)最早是运筹学的一个分支,是求解多阶段决策问题的一类方法。多阶段决策问题值得是一类问题可以分解为若干个相互联系的阶段,每个阶段做出的决策不仅影响当前阶段,还会影响下一阶段的状态。反之,也可以理解为每个阶段决策的过程需要依赖前序阶段的结果。 在多阶段决策问题中,每个阶段决策结果确定构成了决策序列,多阶段决策问题就是使得决策序列中的策略总的收益最优。 动态规划用来解决多阶段决策过程中最优方案等问题的方法,其特点是将多位决策问题转换为几个一维的问题分别去解决。 动态规划中的基本概念有阶段,状态等,决策,策略,状态转移方程等。 动态规划解决的问题一般有下列特点: 动态规划一般分为确定变量,确定状态转移方程,确定边界条件等三个步骤。 确定状态和状态变量 分析问题特点,按照时间或者空间特征,将问题分为有序的若干阶段,因为动态规划是按顺序递推求解,所以阶段一定是可排序的。 确定问题每个阶段求解时的状态,确定所需要的变量。求解过程一般是确定dp数组以及下标的含义。 确定状态转移方程 分析决策过程,确定状态转移方程,决策和状态转移是相互联系的,状态是根据上一阶段状态以及当前决策变迁到当前状态的,所以确定决策就可以明确状态迁移方程,实际求解过程中,往往根据当前阶段和上一阶段的状态差异,推导决策过程。 确定边界条件 状态转移方程是递推的过程,所以需要确定递推的边界条件。因为递推过程是从前到后依次执行的,所以边界条件一般就是初始值。 爬楼梯问题 假如你在爬一个N层台阶的楼梯,每次可以爬一个或者2个的台阶,你有多少种不同的方式可以爬上楼梯呢? 确定状态变量,爬N层台阶,可以按照所在台阶的位置划分阶段…Java查看全文java是一款面向对象的编程语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。java是目前市场中最广泛使用的编程语言之一,其主要版本引入的新特征如下: JDK1.5新特性 自动装箱与拆箱、枚举、泛型、For-Each循环 JDK1.7新特性 switch支持字符串、try语句自动关闭资源 JDK8新特性 Lambda表达式 跨平台 Java跨平台的特性源自其虚拟机的架构,编程语言分为编译型语言和解释性语言。 编译型语言是提前将源代码通过编译过程转换为CPU可以识别的二进制机器码指令。现代的PC或者智能手机硬件有数百个身子上千个指令,而单片机则只有几十个指令,而且不同的硬件平台的指令是不同的,所以编译器需要基于不同的硬件体系进行编译。所以编译型语言是不能跨平台的,除了其编译出来的可执行程序不能在异构平台运行之外,源代码也不能跨平台,例如linux平台下C语言的long型8个字节,睡眠函数是sleep(),但是windows下long只有4个字节,睡眠函数是大写字母开头的Sleep()。 C、C++、Golang是常见的编译型语言。 解释性语言都是跨平台的,因为解释性语言和程序真正在硬件执行是通过解释器翻译的,解释器屏蔽了底层硬件的差异,不同平台的解释器将遵循标准语法的源代码转成匹配硬件的指令进行执行,从而实现了“一次编写,到处运行”。 Python,Javascript,PHP都是常见的解释型语言。 相较于单纯的编译型语言和解释性语言,Java是两者的结合体,源代码先编译为硬件无关的字节码,然后通过虚拟机执行字节码,而且在执行过程中还可以会被进一步编译为机器码…Https查看全文http协议是明文协议,明文数据会经过中间代理服务器,路由器,wifi,运营商等物理节点,传输内容存在被劫持的风险,劫持者还可以通过篡改传输信息发动中间人攻击。https(HyperText Transfer Protocol over Secure Socket Layer)基于http增加了加密的机制。一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。 SSL(Secure Socket Layer)是1994年 Netscape 所研发的一种安全协议,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。基于 SSL,Netscape开发了TLS(Transport Layer Security)的最初几个版本(SSL 1.0、SSL 2.0、SSL 3.0),1999年TSL 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动比较大,还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。 Https通信过程中使用的到的主要技术有对称加密,非对称加密,数字证书等。 非对称加密 非对称加密一组密钥分为公钥和私钥,公钥加密的数据用私钥解谜,反之,私钥加密的数据使用公钥解密。 非对称加密的效率较低,所以https协议会在建立网络连接的时候产生随机的对称密钥,之后通过网站的公钥加密发给网站服务端,之后双方就可以通过这个约定的密钥进行对称加密 对称加密 对称加密需要信息传输双方持有一个相同的保密的密钥… |
热门分类开源Golang消息队列JavaJavascriptLinuxMysqlNLPPHP事务内存管理分布式理论分类存储常用存储开源软件操作系统画图网络编程数据库算法虚拟化前端存储理论常用算法微服务数据结构算法应用计算机原理中间件共识算法分布式分治动态规划容器并发排序架构组件绘图工具网络协议编程语言理论算法思想树缓存架构C++字符串算法工程思想搜索
算法题库
精选内容 |