归档: 2016

【动态规划】从子集和问题到背包问题

一、问题定义有一个包含n个元素{e1, e2, ..., en}的集合S,每个元素ei都有一个对应的权值wi。现在有一个界限W,我们希望从S中选择出部分元素,使得这些元素的权值之和在不超过W的情况下达到最大,这个便是子集合问题(事实上还有其他类型的子集和问题,本文暂不讨论)。举个更具体一点的例子,某农民今年收成小番茄总重量为W万斤,有n个采购商想要向这位农民收购小番茄,他们想要采购的数目都有所不同

服务器性能优化初探

前言本文将总结服务器性能优化的两种基本方法,反向代理和数据缓存,分别会使用到nginx和redis,关于反向代理和数据缓存的基础知识暂时不做介绍,本文将以图文并茂的形式详细地记录安装配置nginx和redis,以及使用它们来简单实现反向代理和数据缓存的过程。1、Nginx 安装与 Proxy 的配置nginx的安装过程如下,由于部分命令运行后的输出比较长(例如make),截图比较麻烦,下面我记录了

NodeJS基础API搭建服务器详细过程记录

前言在习惯了使用express框架,jade模板引擎等现成工具来写代码之后,很多人对于基本的NodeJS API会慢慢生疏。本文将以一个超小型web项目,来详细介绍如何使用NodeJS基础的http, fs, path, url等模块提供的API来搭建一个简单的web服务器。当做对NodeJS的一次复习,也为初学NodeJS的开发者提供一个参考。本文所搭建的项目将不会使用express等后端框架,

Construct-a-VPN-by-making-use-of-OpenVPN

本文将图文并茂地介绍如何利用两台电脑搭建一个VPN。关于什么是VPN,VPN有什么作用等基础知识,本文暂时不作介绍。基本信息本次实验我使用了两台电脑来完成,一台电脑扮演VPN服务器,另一台则是客户端,下面是两台电脑的基本信息:服务器操作系统:Ubuntu 16.04客户端操作系统:Mac OS 10.12.1一、前期准备1、打开终端,为了方便后面的操作,先切换到root权限2、安装openvpn、

【动态规划】带权值区间调度问题

一、问题定义存在单一资源R,有n个需求{1, 2, ..., n},每个需求指定一个开始时间bi与一个结束时间ei,在时间区间[bi, ei]内该需求想要占用资源R,资源R一旦被占用则无法被其他需求利用。每个需求i带有一个权值vi,代表该需求被满足之后能够带来的价值或者贡献。如果两个需求的时间区间不重叠,那么它们是相容的。带权值的区间调度问题即,对上面所描述的情境,求出一组相容子集S使得S中的区间

计算机网络应用层协议分析总结

1、应用层协议原理1.1、网络应用程序体系结构C/S结构,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。客户机主机既可能有时打开,也可能总是打开。C/S结构之下,客户机之间不直接通信。服务器有固定的IP地址。在C/S体系结构中,常用主机集群创建强大的虚拟服务器。基于C/S结构的应用服务通常是基础设施密集的(infrastrucuture intensive)。P2P结构

稳定匹配问题与GS算法-单身狗脱单秘籍

稳定匹配问题稳定匹配问题(stable matching)是一个常见的问题,GS算法是解决稳定匹配问题的一个优秀的算法。下面,我将以男女配对的例子来介绍稳定匹配问题并阐述GS算法的具体步骤。GS算法,全称Gale-Shapley算法。学习完稳定匹配问题和整个算法流程之后,我觉得它还可以起另外一个别名,Get-rid-of-Single算法,单身狗脱单算法。问题描述有n只男性单身狗的集合M = {m

socket通信基础知识点记录

网络通信是一种进程间通信(IPC, Inter-Process Communication),要求位于不同网络节点不同进程的通信双方必须遵循统一的通信协议方可实现。基于套接字(Socket)通信是应用在不同节点上的进程间通信的典型办法。1、基本原理1.1、 Socket API基本概念Socket API是TCP/IP网络的API,用于提供IPC通信。下面是socket API的概念模型。Sock

计算机网络概述

1、基本概念主机(host),或者称为端系统(end system),通过通信链路(communication link)和分组交换机(packet switch)连接到一起。链路的传输速率是以bps度量,当一台端系统有数据要向另一台端系统发送时,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息包称为分组(packet)。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换

JavaScript-事件流、事件处理程序及事件对象总结

JS与HTML之间的交互通过事件实现。事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用监听器(或处理程序)来预定事件,以便事件发生时执行相应的代码。这种在传统软件工程中被称为观察员模式,支持页面的行为与页面的外观之间的松散耦合。本文将介绍JS事件相关的基础知识。一、事件流事件流描述的是从页面中接受事件的顺序。事件冒泡事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级