使用数据结构对真实世界建模
甚至在因特网之前,人们也有办法与世界另一边的某人下一盘国际象棋。每个棋手在自己家里放好一个棋盘,然后轮流向对方寄出明信片,描述每一着棋。要做到这一点,棋手需要一种方法,无二义地描述棋盘的状态,以及他们的着法。
在“代数记谱法”中,棋盘空间由一个数字和字母坐标确定,如图:
棋子用字母表示:K 表示王,Q 表示后,R 表示车,B 表示象,N 表示马。描述一次移动,用棋子的字母和它的目的地坐标。一对这样的移动表示一个回合(白方先下),例如,棋谱 2. Nf3 Nc6 表明在棋局的第二回合,白方将马移动到 f3,黑方将马移动到 c6。
代数记谱法还有更多内容,但要点是你可以用它无二义地描述象棋游戏,不需要站在棋盘前。你的对手甚至可以在世界的另一边!实际上,如果你的记忆力很好,甚至不需要物理的棋具:只需要阅读寄来的棋子移动,更新心里想的棋盘。
计算机有很好的记忆力。现在计算机上的程序,很容易存储几百万个像’2. Nf3 Nc6’