计算机科学的要义

通信和控制是目的,计算和存储是手段,模块化是方法。通信和控制体现着两种截然不同的人生态度。通信强调的是信息交换,即信息在时空中的转移、流动,这样的交换一般是平等的,交换主体之间彼此互惠,协商互换。可惜,信息无法脱离物质而单独存在,故而需要依赖于某些介质,从而也必然存在着信息安全的问题。控制强调的是行为可预测,即信息的流动、物质的时空变换呈现出确定性的状态,要借助周期性的运动(时钟和计数)方能达成。 … 继续阅读

孤独

年轻人的孤独,并不那么难以忍受,至少有眼睛、耳朵、腿脚相伴,有时甚至会是一种抛开一切嘈杂去讨好心灵的享受,但老年人的孤独,我无法体会。感官失灵后,要如何去讨好心灵呢,大概需要让心灵去讨好自己吧。如果心灵失灵了呢,大概就是别人说的死亡吧。可见心灵是不好去讨好的,何必白费力气呢,最好的办法就是钝化它、冷落它,于是有人去一味地讨好感官,还有些人去一味地讨好别人,因为自己的死亡终是从别人口里说出来的,葬礼 … 继续阅读

全触分布

最近想到一个问题,发现了一个有趣的分布,姑且叫其全触分布。可能这个分布已经有了名字,不过翻了一遍概率论的书,似乎没有看到有谈过这个分布。初始问题假设有两台服务器,各自有独立的缓存需要预热(即初始化缓存),而预热时只能通过相同的访问地址,访问负载均衡器之后,由负载均衡器等概率随机选择一台预热,问至少需要几次地址访问,才能保证两台服务器中的缓存都被预热过的概率超过99%?这个问题等价于一个投硬币的问题 … 继续阅读

对研究的一点想法

汉语中的“研究”,虽用了两个动词,但望文生义,更像是从研究的结果来代指研究。研,本义是磨碎、碾碎的意思,自然是个动词,然而,大多数的研究并不涉及研碎、碾碎的动作,所以想来,研虽是个动词,在这里却是拿状态来拓展字本身的含义,研究的最终结果往往都是长篇大论,犹如将东西磨碎、碾碎之后细柔绵绵。究,本义是穷、尽的意思,既能说是动词,也能说是副词或形容词,有种追问到底,探求到枯竭、空、无的含义。从构词上来看 … 继续阅读

滚动硬币的启示

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

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

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

Writing Practice

UNIT 1BELLJessica woke up with a start: she saw Jimmy captured in a rebellion and tortured to death in the dream. She could not help crying and blamed herself for not persuading her bellicose fiancé out of this dispute. She really hope they could return to the antebellum way of life, not this society full of belligerence.September 09, 2017PAC/PEASH … 继续阅读

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

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

尾递归的启示

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

How to Write Unit Tests

This is not an article that guides you to setup a concrete unit test example. It is about discussing the basic principles, including the motivation of writing unit tests, the concepts from popular unit testing frameworks, and the thinking on what ideal unit tests look like. It will give beginners a good foundation on learning and writing unit tests … 继续阅读