图灵停机问题的一个简单论述

图灵停机问题问的是“能否设计一个算法,在判定任意的一段算法对给定的一些输入在有限步骤后停止运算时,返回是,而在判定任意的一段算法对给定的另外一些输入无法在有限步骤后停止运算时,返回否“。图灵的回答是这样的算法无法被设计出来。问题中所谓的算法等价于图灵机。假设存在算法A,具备这样的能力。设想对任意的算法T,对于输入mh,能够在有限步骤后停止运算,那么,此时算法A对于(T, mh)回答是。同样的算法T … 继续阅读

三角形周长

有\(n\)根棍子,棍子\(i\)的长度为\(a_i\)。想要从中选出3根棍子组成周长尽可能长的三角形。请输出最大周长的三根棍子,若无法组成三角形则输出空字符串。限制条件\(3\le n\le 100\)\(1\le a_i\le 10^6\)例如,输入:2,3,4,5,10输出:3,4,5输入:4,5,10,20输出:[空行]众所周知,满足三角形的条件为任意两边之和大于第三边,略微一想,等价于两 … 继续阅读

像素密度和设备像素比

像素密度和设备像素比的概念事实上比想象中的复杂,希望这篇文章能够消除开发者和设计师们的疑虑和错误认知显示器上常用的长度单位是像素(pixel),比如说一台显示器的分辨率是1280×800像素,一张照片的大小是1050×1500像素,一台照相机有300万像素。像素和物理上的长度单位不是等价的。物理上的长度是个连续的概念,所以物理上的长度单位也是连续的。像素是对显示器上的电子基础元器件或者图像文件的基 … 继续阅读

火车窗外

每次坐火车时,总爱看窗外的风景。近处的树木看起来总比远处的高楼运动得快,令人眼花撩乱。细想来,以火车为参考系,不论近处的树木还是远处的高楼都以相同的速率向着火车运动的反方向运动,所以不应该是速率的变化造成的视觉差异,而应该是角度的变化率(即角速度)的不同造成的。假设初始零时刻,火车以速度\(v\)做匀速直线运动,取火车相对地面的运动方向为正方向。与此同时,假设我所处的位置为位移的零点,垂直于运动方 … 继续阅读

两个物体的简谐振动

两个质量均为\(m\)的小车被长度为\(l\)的无形变的弹簧连在一起,放在光滑的水平面上,弹簧质量不计。初始时刻给左侧的小车一个\(v_0\)的初速度,求每个小车的运动方程。根据动能守恒得$$m\dot{x}+m\dot{y}=mv_0$$根据能量守恒得$$\frac{1}{2}m\dot{x}^2+\frac{1}{2}m\dot{y}^2+\frac{1}{2}k(y-x-l)^2=\frac … 继续阅读

公开密钥加密在SSH远程登录中的应用

一直以来,都在享受着SSH免密码登录的远端服务器的好处,但总觉得对背后的逻辑不是太清楚,或者说,根本没有细想过,因为网上充斥了大量的,如何做,却不告诉为什么,下一次再去做的时候,又费半天功夫,所以有必要熟悉完整的流程。近来有了“深入理解加密、解密、数字签名和数字证书”这篇文章做底子,SSH免密码登录背后的逻辑也容易理解很多。SSH协议的设计初衷是为rsh、rlogin、rcp等命令提供更佳安全的实 … 继续阅读

数字签名在安卓包发布中的应用

安卓包发布前必须要有正式签名才能在应用商店发布,对照公开密钥基础设施的常规流程而言,安卓包签名仅是个子集,只有数字签名,不涉及加密。数字签名中核心的要素是私有密钥、公钥证书、原始摘要和签名摘要。涉及的参与者有应用开发者、应用商店和用户(操作系统)。逐一了解了每个核心要素和参与者也就清楚了整个签名的动机和操作步骤。数字签名是拿私有密钥对原始摘要(不管是文件还是对称密钥本质上都是字符串)进行加密,利用 … 继续阅读

公开密钥基础设施图解

很久以来,一直搞不清楚各种加密算法、哈希函数的应用场景,直到读了“深入理解加密、解密、数字签名和数字证书”这篇博文后,一切概念立刻变得明朗起来,于是赶快画了一张图捋清了思路,方便自己和看到这篇文章的朋友回顾。因为原文作者写得足够精彩,逻辑性很强,所以在此只简略叙述图中所画内容。 A要通过网络将文件(Original File)发送给B,为了能让B安全收到,避免传输过程中被截获、窃听或伪造 … 继续阅读

初识log4j

log4j有三个主要的概念:记录员loggers、录入笔appenders和录入风格layouts。记录员是分级别、继承式的。每个记录员有三个基本特征:1. 名称的继承除总记录员之外的所有记录员都要有名称。名称往往是全路径类名,例如com.foo.Bar。名称的继承是指记录员之间有继承关系,com.foo是com.foo.Bar的父亲,com是com.foo.Bar的爷爷。每个记录员的名称唯一,并 … 继续阅读

WordPress的插件机制

WordPress的插件机制展现了强大扩展能力,它将用户模板定制、插件开发等从核心处理流程中剥离,也让开发者在核心之外有机会修改核心处理流程中的任何一个环节。基本概念WordPress插件机制的核心是钩子(Hooks),每一次处理请求都会顺序执行一系列的钩子,每个钩子由唯一的标签(Tag)标识,每个钩子上能够注册数量不限的函数,在钩子执行中,函数按照注册时的优先级先后依次执行,每个钩子可以重复被执 … 继续阅读