- 主题:琢磨了半天,高考平行志愿接收系统的算法,挺有意思的
【 在 jimmycmh 的大作中提到: 】
: 靠人的时候不是平行志愿吧
: 实现也不复杂吧,投档是有轮次的。
: 学生在一个池子里,学校是个桶,每轮投档时,从学生志愿列表里取出未处理的最前的那个塞相应桶里,桶内按成绩+志愿序排序。录取了相应学生就从池子里删除。
: ...................
请教,假如第一轮,一个学生很高分,但是报的是北大的第二志愿,清华第一志愿,北大是不是要等清华录取完了再录取啊,另一个学生也很高分,第一志愿北大,第二志愿清华,那么清华是不是也要等北大录取完了再录取?这样死锁了?
--
FROM 117.133.20.*
【 在 prog2000 的大作中提到: 】
: 不是这样
: 从高分往低分录
: A是680分,试投第一志愿清华,若清华满了,看第二志愿北大
: ...................
那假如分数都够,都没满的情况下,北大首先扫描到了A,是不是要等清华完了再。若是清华首先扫描到了B,是不是要先等北大。这样也会死锁啊。
--
修改:deusomax FROM 117.133.20.*
FROM 117.133.20.*
【 在 prog2000 的大作中提到: 】
: 按学生的分数从高到低
: 所以不会存在死锁
:
那还是存在等待现象,只是不死锁了。
假如北大先启动系统,发现A的第二志愿才是自己,这时不得不等待A的第一志愿录取情况。等清华启动,因为A比B高,所以先扫描A,这时北大录取就可以继续,即使清华先扫描到了B,也要等待第一志愿的北大录取情况。
是这样吗?
--
FROM 117.133.20.*
【 在 zhanghen 的大作中提到: 】
: 想啥呢,学校没有权力启动。投完档了学校才能看。投档就是学生按分数高低严格排序投。就算台式机也很快就投完了。
哦,原来就是一张表,各个学校按顺序分人。
--
FROM 117.133.20.*
【 在 jimmycmh 的大作中提到: 】
: 第一轮投档的时候,第二志愿根本不会投出去啊
:
那这样还要从第一轮的结果里剔除一些人?这样效率太低了吧.
--
FROM 117.133.20.*
【 在 Pcpop2 的大作中提到: 】
: 平行志愿不分志愿顺序,同一批次,所有人都只有一次机会投档,所以专业需要接受调剂,需要有能保得住的志愿。否则滑档,因为本批次投档已结束。
能否详细介绍下算法,是一次投档,还是20个平行志愿,20次投档?
--
FROM 117.133.20.*
【 在 gzfq 的大作中提到: 】
: 按照考生分数排序,分高的先按照他自己的志愿顺序挑,挑到啥就是啥,然后下一个学生。
:
: #发自zSMTH-v-@打死也不说!
那也就是一轮过啊,不存在多轮投。
--
FROM 117.133.20.*
【 在 Pcpop2 的大作中提到: 】
: 所有上线考生排长队,依次从第一名到第二名再到第三第四等等进行投档,投档时检索考生志愿表,从第一个到第n个,依次检索,有空位就可以投出,没有空位就滑档。再检索下一位考生。完成所有检索后,考试院一次性完成所有考生的志愿,这就是一次投档的意思。
我原以为投档是每个学校自己的系统,看来我想复杂了。
--
FROM 117.133.20.*