滚动硬币的启示

《不要大惊小怪》是本有趣的小册子,引言中的例子就引人深思。题目虽然很容易,但抽取出背后的想问题的动机和方法却需要过去有一定量的实践和反思。 原文的题目问: 有两枚一模一样的硬币,它们半径相等,并排靠在一起,其中一枚固定不动。开始时一枚硬币上的箭头向上,将它沿着另一枚硬币的边缘无滑动地滚动,一直滚到这 … 继续阅读滚动硬币的启示

图灵停机问题的两种符号表述

年中在读《量子计算与量子信息原理》的时候,写了一篇《图灵停机问题的一个简单论述》的阅读笔记,对大学时没学明白的图灵停机问题有了一些基本认识。今天在读《复杂》的时候,里面采用了另外一种等价的说法,在符号形式上看起来略有差异,如今记录一下加深印象。 回顾量子一书中的描述,先假设存在算法A具有判定任意算法 … 继续阅读图灵停机问题的两种符号表述

求数组的子数组之和的最大值

——尾递归的应用 这是《编程之美》中2.14节提出的一个问题,问题的描述为 一个有N个整数元素的一维数组(A[0], A[1], …, A[n-2], A[n-1]),这个数组有很多子数组,那么子数组之和的最大值是什么? 以往遇到这种问题的第一种思维模式也像书中的第一种解法一样去枚举出所 … 继续阅读求数组的子数组之和的最大值

尾递归的启示

——读《计算机程序的构造和解释》第一章第二小节所想 尾递归是指在过程调用中,递归调用过程本身的操作始终是过程的最后一步。举例来讲,计算阶乘的方法,根据定义,直接翻译成递归形式为 def factorial(n): if n == 1: return 1 else: return n * factor … 继续阅读尾递归的启示

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

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

像素密度和设备像素比

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

火车窗外

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