采样分类统计法计算分组票数

!本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本人不保证相应的兼容和可操作性。

文章仅供参考

今天单位要求计票,近100个人,几千张选票,每张选票上有1~12人不等,选票内容有两大类,一类分为同意和不同意,一类分为优秀、称职、比较称职和不称职这几个选项,要求分别算出这些人两大类的选票数。

杯具的是,原始的选票,木有计算机啊,再NB的程序也派不上用场了,只有手工计票了,和同事讨论的几种计票方法,同事给出的意见是:先选择选票上第一个人,然后分别筛出得票最多的选项,比如说,这一堆选票,每张有张三、李四和王五三个人,首先选择张三,大概看了一下,发现张三得同意和优秀的票最多,我们把这些票筛选出来,然后统计不是这两个选项的票,这里只能采用笨方法,依次遍历两大类的各选项。这样发现计票确实容易了一些,因为大多数票已经被筛出了,然后数一下筛出的票数,再合计就得出了张三的所有选项的票数。

下午,同事有事外出,我单独找了一间大的会议室,然后准备计票,突然想到计算机上典型的以空间换时间的算法,也就是说时间快效率高,多数是以牺牲空间为代价的,典型的就是缓存,我们将经常会访问的数据存放在缓存里,这样可以避免多次查询数据库所带来的性能开销,访问的速度就会变快,而这个速度是要牺牲内存或者硬盘空间的;相反,如果空间小,更多地是要消耗性能,导致速度瓶颈的。

那么我又研究了一下刚才同事提出的思路,然后实际计了一组选票,得出以下结论:

1. 全部选择同意和优秀的比较多排第一,这类人多数对投票不感兴趣、不敢得罪人或者是不认识被选举人。

2. 全部选择同意和称职的人数排第二,这类人多数具备有第一条所述的特点,同时思想略有保守,对优秀比较感冒,或者本人要求比较严格,无论看什么都是有缺点的。

3. 全部选择不同意和称职的人数居第三,这类人多数原则上不想被选举人当选,既然不想被选举人当选,那么“优秀”就无从谈起,接下来就是“称职”、“比较称职”和“不称职”三种说法,既然选择不同意,可能觉得被选举人缺乏职务升迁的某种能力,但是对于其工作还是认可的,所以选择称职。

现在根据以上结论进行计票,第一种选票是所有人都是第一条结论,单独筛选出来,依次筛出第二、三条结论说明的选票,记住,这里是所有人

现在面前已经有三堆选票了,分别数出这三堆票的数目,然后给每个人加上应有的数字,接下来可以把这三堆释放掉,当然如果空间大,可以先放在那儿,可以不用管它们了。

下面手上的票每个人得票的情况可能比较乱,总体上比原来少了很多,我们继续筛出第一位被选举人的选票,分上述1、2、3结论,还有就是其他(排除1、2、3种情况的)。当然这里的操作和上面的筛选同时进行。

由于是同时进行的,所以只筛选了一遍我们已经排除了大多数选票,并得出第一个被选举人的多数票数,只要再把手上少数的关于第一个被选举人的其他票计算一下,第一位被选举人最终票数就有了。

删除第一位被选举人,再重复上面的方法,筛出第2、3位选举人,实际操作中会发现,越统计到后面需要统计的票数越少,很大程度上减少了重复计票。

虽然占满了很大一部分桌子(空间),但是提升了效率,还是很值得的。

部分个人观点,如有不当,还望指教。

若无特别说明,本网站文章均为原创,原则上这些文章不允许转载,但是如果阁下是出于研究学习目的可以转载到阁下的个人博客或者主页,转载遵循创作共同性“署名-非商业性使用-相同方式共享”原则,请转载时注明作者出处谢绝商业性、非署名、采集站、垃圾站或者纯粹为了流量的转载。谢谢合作!
请稍后...

发表评论

电子邮件地址不会被公开。 必填项已用*标注