作者changwsh ( )
看板post-b.test
标题Re: [讨论] 重榜计算
时间Wed Jul 15 09:59:24 2015
重榜等待很煎熬,试算表是我起的头,为了减少可能造成的困扰,再做一些说明。
如果只要计算各校可能重榜人数而非名单,应该只要让所有录取人数大约为 245,
也就是四校公告的总招生人数。如果没有弄错,去年似乎是 247,可能有 2 人录
取一间或超过一间但是放弃入学。
这边再提供一份只算重榜人数的结果,在同网址第二个分页「仅算重榜数量」,
这份提供一个范围,即 242 ~ 250 人。
https://goo.gl/33jG8M
以上过程也可使用 excel 把四校某名次前的名单贴到同一栏,然後按「资料」、
「移除重覆」就有结果,但无法自动化大量计算,除非用巨集(至少我找不到不
用巨集的方式),所以原试算表是用「集合」的联集交集公式计算(栏位G15)。
制作试算表是为了可以让任何人自己下载并针对自己的备取名次调整,规则也可
由所有人来验证并更正,并直接提供名单,更重要的是明年也可再利用,只需更
新榜单的姓名,不需再花其他时间。
没想到义守的榜单今年打马赛克,前份试算表的义守推测名单采「严格认定」,
若於其他三校有两个以上的姓名可能符合,就当作没重榜,所以会低估。采取严
格认定的原因是避免有人以为自己可以备取到,之後可能失望。
此结果是由 shell script 计算,有兴趣的可以自己使用,把四校完整名单(正
取加备取,一行一人)分别存成 cmu.txt isu.txt tcu.txt kmu.txt,在 linux
或其他 unix-like 环境执行以下程式(不用二进位执行档(exe),避免资安疑虑,
程式如後)。
./lists_uniq.sh 109 115 90 135 85 130 50 50 > enroll.txt
按照「中义慈高」的顺序,输入「起始名次」及「结束名次」(总名次,非备取)
即可计算出不重覆的人数。
以上述范例来说,会算出以下名次所有组合的不重覆人数:
中 109 ~ 115(备 9 ~ 15)
义 90 ~ 135(备 40 ~ 85)
慈 85 ~ 130(备 40 ~ 85)
高 50 ~ 50(备 0)
若有发现试算表或程式错误欢迎指正,不用客气。
lists_uniq.sh 程式如下,可以每年重覆使用:
--
#!/bin/sh
TMP_FILE="tmp_104.dat.txt"
for i in `seq $1 1 $2`
do
for j in `seq $3 1 $4`
do
for k in `seq $5 1 $6`
do
for m in `seq $7 1 $8`
do
rm -rf $TMP_FILE
head -n $i cmu.txt >> $TMP_FILE
head -n $j isu.txt >> $TMP_FILE
head -n $k tcu.txt >> $TMP_FILE
head -n $m kmu.txt >> $TMP_FILE
n=$(sort $TMP_FILE | uniq | wc -l)
printf "$i\t$j\t$k\t$m\t$n\n"
done
done
done
done
rm -rf $TMP_FILE
--
--
道可道,非常道。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.30.32
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/post-b.test/M.1436925568.A.1C8.html
1F:→ changwsh: 彷佛 google doc 计算有时会卡住,需要等一下 07/15 10:10
2F:推 d453k786: 推热心 超强的 07/15 10:30
3F:推 manguy: 推c大!!!!! 07/15 10:49
4F:推 gans: 高手 07/15 11:21
5F:→ changwsh: 补充「所有人四校排名」,在第四页 07/16 00:02
6F:推 glad159: 有你真好 07/16 01:25