椰林草舍

In the jungle, the mighty jungle, the lions sleep at night.

2007年11月27日星期二

一个高考录取算法


银色的世界耀眼地闪光
我踏着积雪向黄色的小楼走去。。。

-《云雾中的返顾》

(一)问题的提出

今年,是恢复高考的30周年。今天,是恢复后的第一次高考在吉林省开考的30周年日。那天早上,刚下过一场清雪,长春银装素裹。

发生于1977年的恢复高考是个非常重要的历史事件。它对随后的中国社会产生了重大影响,改变了我们这一代人中间的许多人的命运。在这样的一个整十倍数年的纪念日,觉得好像该写点儿什么,最后选个简单的,就写个“理想的”计算机高考录取处理算法。算法的程序设计部分实现起来大约是一个熟练程序员三、五天的工作量。从现在的环境看,这东西好像不现实,要不怎么说是“理想的”呢。

(二)讨论

我们这一代人从自己的生活经验知道,为社会选择人才,或者从另一方面说,为确定个人在社会网络中的位置,考试比类似举孝廉那样的推荐进步、公平,尽管考试制度本身也有弊端,主要是,人的实际能力并不能通过几个小时的考试来准确表现。但是,似乎没有其他较好的替代方法。

既然采用了考试制度,就应该努力使这种制度公平。我认为,分数面前人人平等应该是一个保证最大的公平性的基本原则。基于这个原则,应该尽量遏制两种现象,一是歧视,二是人为干预。歧视包括地域歧视和种群歧视,可能还有别的。美国这里就有种群歧视现象:仅仅因为一个考生在生物学或遗传学上属于某些个种群的就可以以较低的分数进入某校。我认为这是荒谬的,表面上讲是为多元化,是照顾这个考生和这个种群,殊不知实际上是对这个考生和这个种群的尊严的亵渎,是对其他竞争者的利益的侵犯。在中国,地域歧视较为突出,其实质和所造成的负面社会效果类似。

人为干预发生在录取阶段。我所了解到的国内的情况是,相关的负责人有很大的权力。这样的话,不可避免地孳生出腐败和不公。美国这里在这方面的情况要好的多。这里有的学校有时会有面试,属于一种人为干预,但实施面试的通常是在本地随意指定的有空闲的校友,其意见所起的作用也不是很大。

高考录取中的歧视和人为干预是可以完全消除的,那就是由计算机来处理这件事。据说,福州市用计算机分配初等学校,即根据居住地点确定所入学校的问题。这是排除歧视和干扰的一个有意义的案例,它提示我们,高考录取亦可类似地进行。

以下是一种设计。此设计包括基本设置和算法两个部分。基本设置部分和现有的情况基本相同,只是这里有些东西明确了一些。算法部分用一句话简单地描述就是:以志愿类,按数排序,梯次录取(简称,三个算法)。

(三)基本设置

1)全国统一规定全部的高考的科目,比如6门:数学、物理、化学、中文、历史、英文。全国统一命题。全国统一批卷。

2)每个学校的每个专业选择自己要求的科目,确定选择了的科目的重要性顺序,确定招生名额。比如:吉林大学软件专业选择数学、物理、英文3门,重要性如序,预备招生200人。这些信息每次高考前公布。另外,还要公布这个专业的其他限制条件(如专业对身体条件的要求)。注意,这里的专业是狭义名词,指的是一个学校里的一个本科生培养方向。

3)考生在每个录取梯次填写N个志愿。

(四)三个分算法

【1. 一个梯次的录取】对于变量I从1到N循环以下两个步骤:

[1.1 第I志愿排序]对尚未完成录取数额的每个专业X,将所有第一志愿报了X的考生按总分数高低排成序列S(X,I)。对总分数相同者,按第一重要科目的分数排序。对第一重要科目分数相同者,按第二重要科目分数排序。以此类推,直到最后一个科目。如最后一个科目的分数仍然相同,由软件产生随机数排序。

[1.2 第I志愿录取]X按顺序人工录取S(X, I)的前N(X, I)名。第I志愿录取结束。被录取的考生的名字删除。其余考生的第I志愿作废。

【2. 录取为空?】如果对于所有的X和所有的I,N(X, I) = 0,则属于录取为空现象,整个录取作业结束。否则,就是存在至少一个X和一个I,使N(X, I) > 0,即至少有一个专业X按第I志愿录取了一名考生。

【3. 专业完成?】如果所有的专业已经满额,则操作停止,整个录取作业结束。否则,就是尚有专业没有完成录取,这时要将这些专业和欠额公布,考生依此重新决定下一个梯次的N个志愿。

【4. 考生完成?】如果已经没有考生对所公布的余下专业感兴趣,则操作停止,整个录取作业结束。否则,就是尚有考生对新公布的某些专业感兴趣,这时操作要返回上述步骤1开始下一个梯次。

这个算法显然是收敛的。


老椰子
2007年11月28日于纽约

2007年11月6日星期二

豆杵子,等等


在吉坛受大家提示,我研究了一下豆杵子(以前我没细想过)。我认为:在东北乡下,人们说的豆杵子应该指的是黄鼠,即,大眼贼儿。

一般的共识是:豆杵子,小型哺乳动物,能人立,形状象捣豆为泥的木杵。现在,考察以下两种疑似豆杵子的动物。

(1)黄鼠。黄鼠也叫大眼贼儿,松鼠科,比兔子小,比田鼠大,样子跟松鼠差不多,美国人叫它地松鼠(ground squirrel)。不过,美国的地松鼠耳朵还不小;我所熟悉的黄鼠外耳朵基本退化了,其形象如下:
点击看适应窗口的图片

(2)旱獭。旱獭也就是士拨鼠,住草原,叫声如狗,美国人叫它草场之狗、地狗(prairie dog,groundhog),另两个英文名是 marmot 和 woodchuck。旱獭也是松鼠科,但体型相当大,平均体重为4.5公斤。其分布,应该是在北美较多;在我国,多见于西部草原。瑞典探险家赫定和英印军官威里壁分别描述过远看都以为是人了那么大的旱獭,地点都是在羌塘高原。

旱獭和黄鼠体型、样貌差不多,但个子更高大,更胖。点击看适应窗口的图片

二动物皆松鼠科,长相类似,食谱接近,出洞后皆善直立眺望(这天底下能这么整的动物不多,计有:人、猴子、熊、。。。),都是共性。

但是,东北乡下人说的豆杵子应该是黄鼠而不是旱獭,因为豆杵子不应该太大。谚语曰:黄皮子下豆杵子-一辈不如一辈,类似于山叫驴变蚂蚱-一辈不如一辈。说明豆杵子体型应该小于黄皮子(黄鼠狼),因为被不公正地称为山叫驴的雌性蝈蝈当然比一般蚂蚱大许多。

我曾经打过黄鼠。黄鼠危害农作物,破坏草场,又是鼠疫菌的主要携带和传播者,防疫部门指令农民捕杀。我刚下乡时,16岁多,骨瘦如柴,上趟子有点儿吃力,就被指派去捕黄鼠。捕黄鼠用非常凶狠的踏板对夹,下在洞口,几乎百发百中。两个月下来,我大约捕杀黄鼠几百只。但是,我从来没在野地里看见过那种大的旱獭,可能整个松嫩平原就是没有,也许整个东北都不一定有或有也极少。

不过,我抓到过另外一种动物-一只鼹鼠。鼹鼠外号瞎眯杵子(已经瞎眯杵子了,自然不是豆杵子),也叫翻巴掌,属鼹鼠科,就是遍地造出许多小包包那种东西。鼹鼠的皮毛柔软美观,掌外翻如铲,吻长,外耳已消失,视力可能已全无。下面这个图片里的没有我见过的那只漂亮,嘴太猪了一些。跑题了。

这个瞎眯杵子嘴太猪了。点击看适应窗口的图片

我还注意到,黄鼠独身居住,一洞一只,交配时节外出找异性,寻寻觅觅,不时直立张望,但不怎么扎堆。据说,黄鼠的孩子只跟母亲短时间同住,不久就出去独立门户。这个我没有机会仔细观察,因为在黄鼠生育季节到来时,我的捕鼠工作已经结束。

黄鼠体健,反抗时强劲有力。我捕捉时,见有中夹未死的,就以鹰嘴钩一击毙命,以减轻其痛苦,并避免被咬伤或抓伤。

当然,乡亲们都管黄鼠叫大眼贼,倒是没听谁说那大眼贼就是豆杵子,以后有机会应该核实一下。

人立小动物中,那种站得最直可以说是亭亭玉立的瘦个子叫 meerkat,翻译成猫鼬,獴科,生在南非,又称南非阿獴,喜欢群居,行动敏捷,善杀蛇。从电视上看猫鼬群攻眼镜蛇,场面自然血腥,但双方惊人的速度、灵巧度以及猫鼬们之间的默契配合,烘托出一种迷人的艺术气氛。

一只猫鼬点击看适应窗口的图片

老椰子
2007年11月6日于纽约