可验证的计算机排位方法
技术领域
本发明涉及一种计算机安排座位的方法,这种方法可有效地解决电脑摇号时的公平问题。
发明背景
计算机排位在应用中通常被称为电脑摇号或电脑摇号派位。这种方法在现代社会已得到广泛应用,例如我国高考就要用到电脑摇号派位来安排考生的考位,许多地方的学位也要借助电脑摇号派位来落实公平教育,经济适用房的分配也往往需要借助电脑摇号做到尽量公平,一些集会、会议也要借助计算机排位来解决座位安排的次序问题。但现在,许多群众完全不相信这种方法能保证公平,这是由于现有的计算机排位方法中参与排位计算的随机数都是在计算机内部产生的,即使有些地方实行双随机摇号参与排位计算的随机数最终也是由计算机产生,即随机数的产生过程并没有真正公开。因此,组织者采用现有的方法完成排位后,监督者无法确认排位过程中所采用的随机数是舞弊者提供的还是计算机随机产生的,所以也无法对排位结果的公正性进行验证。也正因此,一些工作人员利用职务之便,暗中采用各种手段左右排位结果,这种非法行为要是不出现六连号这样的小概率事件,绝大多数难以找到证据。本发明正是在这种社会需要的情况下产生的,本发明通过从外部采集随机数保证所有参加排位的对象机会均等,通过事后验证的方法使利用计算机的舞弊者无法隐藏,从而保证计算机排位的公平性。
发明内容
计算机排位方法由排位算法G、配置数据D、随机参数P、排位结果R四部分构成。可用计算机伪代码表示为:R=G(D,P)
其中的排位算法G由选用的软件决定,配置数据D由实际情况决定,在排位算法G、配置数据D这两者确定的情况下,随机参数P就决定了排位结果,现有的排位软件把产生随机参数P的任务交给了计算机,由于计算机在CPU中产生随机参数P的过程人眼无法看到,因此给舞弊者留下了漏洞,如果我们从外部采集随机参数P再由人工输入到计算机中,并且合理组织就可堵住该漏洞了。
本文所述配置数据D包括:竞争者数据和资源数据两部分。其中所述竞争者数据是指由竞争者身份信息所构成的记录集合,这些记录由一个或多个字段值所构成,常用的字段有受理编号、姓名等,竞争者数据通常要求存在关键字段,这里所述关键字段,是指各条记录中在该字段的值互不相同且用作检索的字段,这些字段其实就是竞争者的某种身份信息,本文中所述身份信息由下列信息中的一种或多种构成:受理编号、户籍编号、身份证号码、学生证号码、学号、考号、择校志愿、学籍编号、电话号码、地址、姓名、班级、出生日期、年龄、银行给用户开设的账户号、存折编号、银行卡编号(含信用卡编号)、网络公司授予的账户号(如腾讯QQ号码、百度的空间账户号等)、电子邮箱、查询密码、籍贯、性别、政治面貌。本文所述受理编号是指根据申请顺序按照特定规律变化产生的编号,例如自然数编号。在特殊情况下,如果各条记录的信息综合起来能保证各条记录互不相同,也可采用无关键字段记录集合作为竞争者数据,竞争者数量可从记录的数量推出,因此竞争者数量也是竞争者数据,竞争者数量具体可表现为人数、户数、有效申请数量等。本文所述资源数据是指要通过本次排位配置给竞争者资源的相关信息或相关信息所构成的记录集合,例如:在配置经济适用房、廉租房、购车或证券市场摇号时,资源数据是指可供配置的指标总数以及与其相关的一些信息;在配置学位进行电脑摇号派位时,资源数据是指派位的学校名称、各学校派位人数以及与其相关的一些信息;在配置考生考位进行电脑摇号派位时,资源数据是指考场名称(通常为学校名称)、该考场的试室数量、每个试室最多安排多少考生,每一排多少人以及与其相关的一些信息;在配置集会或会议座位时,资源数据是指座位编号。有些部门或单位在组织电脑排位时会需要一些附加数据,例如期次、任务描述等一些辅助性的信息,这些附加数据并不会参与排位运算,只是一种补充性的说明,但为便于后文的陈述,本文将附加数据并入资源数据。
本发明的方法由排位模块、验证模块共同构成。为了保护竞争者的隐私,验证模块中使用的配置数据往往需要将其中的隐私信息删除或采取保密措施,这样导致排位模块和验证模块中使用的配置数据在细节上是有所区别的,为便于区别本文将在排位模块、验证模块中使用的配置数据分别称为内控配置数据Dm、外监配置数据Dp,将在排位模块、验证模块中使用的排位算法分别称为内控排位算法Gm,外监排位算法Gp。本文中所述内控配置数据Dm就是指由组织者掌控的信息内容比较全面详细的配置数据。本文中所述外监配置数据Dp相当于将内控配置数据Dm中不需要公开的信息删除,将需要提供给监督者使用的信息保留并对竞争者隐私采取保密措施后所得到的配置数据。虽然内控配置数据Dm、外监配置数据Dp在细节上有区别,但两者中所有能够影响排位结果的信息要求是等效的,即要求能用外监配置数据Dp及随机参数P来验证排位结果的公正性,要达到该要求就必须满足
Gm(Dm,P)==Gp(Dp,P)
其中内控排位算法Gm,外监排位算法Gp两者之间的关系有四种:①当内控配置数据Dm、外监配置数据Dp完全相同时,内控排位算法Gm,外监排位算法Gp采用同一个算法就可;②当内控配置数据Dm、外监配置数据Dp存在差异时,内控排位算法Gm利用内控配置数据Dm产生外监配置数据Dp,然后调用外监排位算法Gp完成排位计算;③当内控配置数据Dm、外监配置数据Dp存在差异时,内控排位算法Gm利用内控配置数据Dm产生中间数据Di,然后调用公用排位算法Gc完成排位计算,外监排位算法Gp利用外监配置数据Dp产生相同的中间数据Di,然后调用公用排位算法Gc完成排位计算;④两者之间形式上不存在明显的联系,但其实质仍然是构造相同的中间数据,采用同一个排位算法来完成排位计算。
外监配置数据Dp有时需要包含竞争者的隐私,在使用时,我们不得不考虑对隐私加以保护,这就需要对其中的隐私采取保密措施。本文中所述隐私是指不适宜公开或需要保密的信息,例如身份证号码、地址、电话号码、户口本号、学号、学生的班级信息等。本文所述保密措施就是将外监配置数据Dp的隐私转化为非明文信息,并将隐私用于验证方的定位、解密、查询和验证的方法。本文所述保密措施是指以下四者之一:①采用隐私的特征码来代替外监配置数据Dp的隐私,即使用隐私的特征码来表示隐私信息,从而实现隐私的保密,在这种情况下,验证模块在接收到验证者(或查询者)输入的隐私后,将隐私转化为隐私的特征码,然后在排位结果中查找与该特征码相符的排位记录,若找到对应的记录就将找到的记录提交给程序或用户界面,若没有找到就提示没有中签的信息;②将外监配置数据Dp中竞争者的部分隐私作为密码加密对应竞争者的隐私,并将作为密码的隐私转化为特征码添加到外监配置数据Dp的相应记录中,在这种情况下,验证模块在接收到验证者(或查询者)输入作为密码的隐私后,将该隐私转化为隐私的特征码,然后在排位结果中查找与该特征码相符的排位记录,若找到就利用输入的隐私解密对应记录的隐私,然后将解密的隐私和查询到的记录提交给程序或用户界面,若没有找到就提示没有中签的信息;③将外监配置数据Dp中竞争者的隐私作为密码采用具有随机性的加密算法加密自身生成密文,在这种情况下,验证模块在接收到验证者(或查询者)输入作为密码的隐私后,利用该隐私逐条尝试解密排位结果中的密文,若成功解密一条记录的密文,就将解密的隐私和密文被解密的记录提交给程序或用户界面,若所有记录中的密文都无法解密就提示没有中签的信息;④将外监配置数据Dp中竞争者的部分隐私作为密码采用具有随机性的加密算法加密隐私生成密文,在这种情况下,验证模块在接收到验证者(或查询者)输入作为密码的隐私后,利用该隐私逐条尝试解密排位结果中的密文,若成功解密一条记录的密文,就将解密的隐私和密文被解密的记录提交给程序或用户界面,若所有记录中的密文都无法解密就提示没有中签的信息。本文将隐私在通过保密措施后生成的数据称为外监查询码。本文所述采用具有随机性的加密算法是指通过在加密过程中添加随机数或直接向密码中添加随机数的方法使密文结果不唯一的加密算法,即在原文和密码都已确定情况下,采用具有随机性的加密算法加密生成的密文会随着添加的随机数的不同而出现不同的密文数据,但解密后能得到原文。
本文所述特征码是指采用预定的特征码算法计算指定信息中所有数据得到的数值,其中所述特征码算法由下列算法中的一种或多种构成:散列算法、对称加密算法、非对称加密算法。前句所述散列算法由下列算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系运算、变位运算、逻辑运算、算术运算、分组运算、线性运算、非线性运算、伪随机运算。需要注意的是在采用非对称加密算法生成特征码的条件下,无论是排位模块还是验证模块都必须采用公钥加密生成特征码。
参见图1中的排位模块这部分,排位模块的核心工作流程如下:
【1】、选载内控配置数据Dm并输入采集到的随机参数P;
【2】、操作者输入排位指令;
【3】、调用内控配置数据Dm及随机参数P,按照预定的内控排位算法Gm排位,输出可验证的排位结果;
本文所述选载内控配置数据Dm是指下列13种方式之一:(1)在内控配置数据Dm都保存在文件Fm的条件下,设置文件Fm的路径;(2)在内控配置数据Dm都保存在文件Fm的条件下,设置文件Fm的路径,然后导入内控配置数据Dm;(3)在内控配置数据Dm都保存在文件Fm的条件下,设置文件Fm的路径,然后导入内控配置数据Dm并将竞争者数据和资源数据这两者之一显示出来;(4)在内控配置数据Dm都保存在文件Fm的条件下,设置文件Fm的路径,然后导入内控配置数据Dm并将竞争者数据和资源数据这两者显示出来;(5)在由文件Fa、文件Fb构成内控配置数据Dm的条件下,设置文件Fa、文件Fb这两者的路径;(6)在由文件Fa、文件Fb构成内控配置数据Dm的条件下,设置文件Fa、文件Fb这两者的路径,然后将这两者之一导入;(7)在由文件Fa、文件Fb构成内控配置数据Dm的条件下,设置文件Fa、文件Fb这两者的路径,然后将这两者之一导入并显示出来;(8)在由文件Fa、文件Fb构成内控配置数据Dm的条件下,设置文件Fa、文件Fb这两者的路径,然后将这两者导入;(9)在由文件Fa、文件Fb构成内控配置数据Dm的条件下,设置文件Fa、文件Fb这两者的路径,然后将这两者导入并显示出来;(10)在由文件Fa、文件Fb构成内控配置数据Dm的条件下,设置文件Fa、文件Fb这两者的路径,然后将这两者导入并显示两者之一;(11)在内控配置数据Dm中竞争者数据保存在文件Fm的条件下,设置文件Fm的路径,并输入可供配置的指标总数;(12)在内控配置数据Dm中竞争者数据保存在文件Fm的条件下,设置文件Fm的路径,然后将竞争者数据导入,并输入可供配置的指标总数;(13)在内控配置数据Dm中竞争者数据保存在文件Fm的条件下,设置文件Fm的路径,然后导入竞争者数据且显示出来,并输入可供配置的指标总数。
本文所述设置文件Fm的路径是指下列两者之一:(1)根据应用本发明的软件启动时获取的参数进行设置;(2)根据操作者在交互界面上的输入进行设置。
本文所述设置文件Fa、文件Fb这两者的路径是指下列两者之一:(1)根据应用本发明的软件启动时获取的参数进行设置;(2)根据操作者在交互界面上的输入进行设置。
本文所述输入可供配置的指标总数是指下列两者之一:(1)根据应用本发明的软件启动时获取的参数设置指标总数;(2)由操作者在交互界面上通过输入设备输入指标总数。
本文所述采集到的随机参数P,是指在外监配置数据Dp被确定且已经公布之后,按照组织者公布的方案从计算机外部公开采集到的随机数,例如按照事先规定以尚末产生的第几期某种彩票号码为随机数P,或以某种尚末结束的比赛的最终分值作为随机数P,或在现场采用彩票摇号机来产生随机数P,或采集几种随机数组合在一块作为随机数P等。组织者如果利用彩票摇号机采集随机数,最好采用十个球,并且球上分别标有数字0、1、2、3、4、5、6、7、8、9这十个数字,并且在采集过程中每出来一个球产生一个数字后,应及时再向彩票摇号机补充一个数字相同的球以便彩票摇号机能产生连续的整数,同时还应保证随机数P的位数要比竞争者数量的位数大于或等于2,这样方可保证每个竞争者的机会接近均等。
本文所述操作者输入排位指令是指操作者通过操作输入设备通知计算机进行计算排位的操作。
本文所述预定的内控排位算法Gm由下列算法中的一种或多种构成:随机排位算法、随机平均算法、分组随机算法、配额算法。其中所述的随机排位算法是指采用随机算法来计算排位的方法,该排位算法适用于中签率100%的排位计算,当中签率小于100%时,该算法并非最优算法,本文中所述随机算法由下列算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系运算、变位运算、逻辑运算、算术运算、分组运算、线性运算、非线性运算、伪随机运算及加密算法;本文中所述的随机平均算法是指采用随机算法算出第一个安排座位的竞争者后,根据中签率直接安排下一个座位的竞争者的排位算法;本文中所述分组随机算法是指根据资源数据将竞争者等分为N小组,将资源数据等分为N份,然后在每个小组内随机分配一份资源的算法;其中所述配额算法是指一部分指标采用随机排位算法,另一部分指标采用随机平均算法。前面所述的随机排位算法、分组随机算法虽然能让多种信息影响排位结果,使排位结果出现多样性,但在极端情况下可能会出现座位安排的死角,即永远得不到座位,随机平均算法虽然能保证每个竞争者都有机会得到座位,但在确定了第一个安排座位的竞争者后直接剥夺单个竞争者的信息对排位结果的影响,这使排位结果缺乏多样性,而配额算法在中签率小于100%的条件下,既兼顾这两者算法的优点,又克服了这两者的不足,是一种较好的排位算法。
本文所述输出可验证的排位结果是指采用下列方式中的一种或多种:①将可验证的排位结果输出到显示屏;②将可验证的排位结果输出到打印机并打印;③将可验证的排位结果保存到文件。本段③中所述将可验证的排位结果保存到文件是指保存为下列两个文件:(a)保存为组织者内部使用的排位结果文件,(b)保存为向监督者公布的排位结果文件。组织者内部使用的排位结果文件与向监督者公布的排位结果文件相比,前者信息比较全面后者信息应尽量精简,后者还要将隐私转化为外监查询码。为了便于后文表述,本文将向监督者公布的排位结果文件中的数据称为排位结果R0。
发明内容中所述排位结果R0是指由中签者的信息记录所构成的记录集合,这些记录包含下列信息中的一种或多种:中签者的身份信息、中签序号、命中的资源、由中签者隐私生成的外监查询码。其中所述命中的资源是指以下四者之一:①在摇号配置学位时就是录取的学校;②在摇号配置考位时就是考位所在的考场信息、考位位置及考号;③在每个座位都有位置信息的情况下,命中的资源就是位置信息;④其它情况该信息可用中签序号取代。
验证模块可以分为三种类型:①全体验证模块;②外监查询模块;③个体验证模块。
参见图1中的全体验证模块这部分,全体验证模块的核心工作流程如下:
【1】、选载外监配置数据Dp、选载组织者公布的排位结果R0并输入组织者公布的随机参数P;
【2】、操作者输入验证指令;
【3】、调用外监配置数据Dp及随机参数P,按照预定的外监排位算法Gp排位,得到验证方的排位结果R1;
【4】、将验证方的排位结果R1与组织者公布的排位结果R0进行比较,如果这两者在内容上是一致的,就执行步骤【5】,否则就执行步骤【6】;
【5】、将组织者公布的排位结果R0是正确的及这次计算机排位过程是公正的信息提交给汇报的交互界面Wr,然后执行【7】;
【6】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给汇报的交互界面Wr;
【7】在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
本文所述选载外监配置数据Dp是指下列13种方式之一:(1)在外监配置数据Dp都保存在文件Fp的条件下,设置文件Fp的路径;(2)在外监配置数据Dp都保存在文件Fp的条件下,设置文件Fp的路径,然后导入外监配置数据Dp;(3)在外监配置数据Dp都保存在文件Fp的条件下,设置文件Fp的路径,然后导入外监配置数据Dp并将竞争者数据和资源数据这两者之一显示出来;(4)在外监配置数据Dp都保存在文件Fp的条件下,设置文件Fp的路径,然后导入外监配置数据Dp并将竞争者数据和资源数据这两者显示出来;(5)在外监配置数据Dp中竞争者数据和资源数据分别保存在文件F1、文件F2的条件下,设置文件F1、文件F2这两者的路径;(6)在外监配置数据Dp中竞争者数据和资源数据分别保存在文件F1、文件F2的条件下,设置文件F1、文件F2这两者的路径,然后将竞争者数据、资源数据这两者之一导入;(7)在外监配置数据Dp中竞争者数据和资源数据分别保存在文件F1、文件F2的条件下,设置文件F1、文件F2这两者的路径,然后将竞争者数据、资源数据这两者之一导入并显示出来;(8)在外监配置数据Dp中竞争者数据和资源数据分别保存在文件F1、文件F2的条件下,设置文件F1、文件F2这两者的路径,然后将竞争者数据、资源数据这两者导入;(9)在外监配置数据Dp中竞争者数据和资源数据分别保存在文件F1、文件F2的条件下,设置文件F1、文件F2这两者的路径,然后将竞争者数据、资源数据这两者导入并显示出来;(10)在外监配置数据Dp中竞争者数据和资源数据分别保存在文件F1、文件F2的条件下,设置文件F1、文件F2这两者的路径,然后将竞争者数据、资源数据这两者导入并显示两者之一;(11)在外监配置数据Dp中竞争者数据保存在文件Fp的条件下,设置文件Fp的路径,并输入可供配置的指标总数;(12)在外监配置数据Dp中竞争者数据保存在文件Fp的条件下,设置文件Fp的路径,然后将竞争者数据导入,并输入可供配置的指标总数;(13)在外监配置数据Dp中竞争者数据保存在文件Fp的条件下,设置文件Fp的路径,然后导入竞争者数据且显示出来,并输入可供配置的指标总数。
本文所述设置文件Fp的路径是指下列两者之一:(1)根据应用本发明的软件启动时获取的参数进行设置;(2)根据操作者在交互界面上的输入进行设置。
本文所述设置文件F1、文件F2这两者的路径是指下列两者之一:(1)根据应用本发明的软件启动时获取的参数进行设置;(2)根据操作者在交互界面上的输入进行设置。
本文所述选载组织者公布的排位结果R0是指下列3种方式之一:(1)在公布的排位结果R0保存在文件Z的条件下,设置文件Z的路径;(2)在公布的排位结果R0保存在文件Z的条件下,设置文件Z的路径,然后导入排位结果R0;(3)在公布的排位结果R0保存在文件Z的条件下,设置文件Z的路径,然后导入排位结果R0并显示。
本文所述设置文件Z的路径是指下列两者之一:(1)根据应用本发明的软件启动时获取的参数进行设置;(2)根据操作者在交互界面上的输入进行设置。
本文所述操作者输入验证指令是指操作者通过操作输入设备通知计算机进行验证的操作。
本文所述预定的外监排位算法Gp取决于排位模块中预定的内控排位算法Gm,即当算法Gm为随机排位算法时,算法Gp也为随机排位算法、当算法Gm为随机平均算法时,算法Gp也为随机平均算法、当算法Gm为分组随机算法时,算法Gp也为分组随机算法、当算法Gm为配额算法时,算法Gp也为配额算法。
本文所述验证者善后操作是指下列操作中的一种或多种:①打印验证结果;②保存验证结果到文件;③命令计算机重新验证;④重新设置数据和参数命令计算机重新验证;⑤结束流程。
在全体验证模块的工作流程中,步骤【7】里所述前一步骤含义分为两中情况:①当执行过程是由【5】到【7】时,其含义为步骤【5】;②当执行过程是由【6】到【7】时,其含义为步骤【6】。
外监查询模块的核心工作流程如下(这种流程由人工完成最终验证):
【1】、选载外监配置数据Dp,输入组织者公布的随机参数P,输入要查询的对象B;
【2】、操作者输入查询指令;
【3】、调用外监配置数据Dp及随机参数P,按照预定的外监排位算法Gp排位,得到验证方的排位结果R1,从验证方的排位结果R1中查找对象B的排位值S1;
【4】、在交互界面Wr上,将排位值S1及相关信息显示出来,等待查询者善后操作。
然后由用户将排位值S1和公示的排位值进行比较,或将排位值S1和从官方网络查询所得的排位值进行比较从而完成对象B的验证。本文中的外监查询模块并不等同官方网络查询排位值的功能,其区别是,本文中的外监查询模块因为必须要考虑到竞争者的隐私,所以不允许向用户提供非常全面的信息,而且每次查询必须调用排位算法,官方网络查询排位值的功能一般并不需要调用排位算法,而是直接从排位结果中查找,并且可提供更加全面的信息。
本文所述要查询的对象B是指要查询的竞争者的身份信息。
本文所述操作者输入查询指令是指操作者通过操作输入设备通知计算机进行查询的操作。
本文所述从验证方的排位结果R1中查找对象B的排位值S1是指以下五种子流程之一:①在外监查询码仅由特征码构成,且对象B含有隐私的条件下,首先计算对象B中隐私的特征码Id,然后在排位结果R1的外监查询码字段中检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并将该记录及隐私赋值给排位值S1,若没找到就将没有中签的信息赋值给排位值S1;②在外监查询码由特征码和特征码之外的密文共同构成,且对象B含有隐私的条件下,首先计算对象B中隐私的特征码Id,然后在排位结果R1的外监查询码字段中检索特征码Id,若找到与特征码Id相同的特征码,就读取该字段值所在的记录,并利用对象B中隐私解密该记录密文中隐私,然后将该记录及隐私赋值给排位值S1,若没找到就将没有中签的信息赋值给排位值S1;③在对象B含有非隐私的条件下,直接在排位结果R1中与输入的对象B中非隐私相对应的字段中检索对象B的非隐私,若找到与对象B中非隐私相同的字段值,就读取该字段值所在的记录,并赋值给排位值S1,若没找到就将没有中签的信息赋值给排位值S1;④在采用了具有随机性的加密算法加密,且对象B含有隐私的条件下,将对象B作为密码逐条尝试解密排位结果R1中的密文,若成功解密一条记录的密文,就将解密的隐私和密文被解密的记录赋值给排位值S1,若所有记录中的密文都无法解密就将没有中签的信息赋值给排位值S1;⑤在采用了具有随机性的加密算法加密,且对象B既含有隐私又含有非隐私的条件下,首先在排位结果R1中检索对象B的非隐私,排除R1中与该非隐私不相符的记录,然后将对象B的隐私作为密码逐条尝试解密与非隐私相符的记录中的密文,若成功解密一条记录的密文,就将解密的隐私和密文被解密的记录赋值给排位值S1,若所有记录中的密文都无法解密就将没有中签的信息赋值给排位值S1。相对来讲,子流程③最容易实现,但子流程③中采用的非隐私要么信息量有限,要么属于临时性的信息不便使用,例如姓名、受理编号,子流程②、④、⑤较复杂,因此本文中的实施例都采用子流程①。
本文所述查询者善后操作是指下列操作中的一种或多种:①打印查询结果;②保存查询结果到文件;③命令计算机重新查询;④重新设置数据和参数命令计算机重新查询;⑤结束流程。
参见图2,个体验证模块的核心工作流程如下:
【1】、选载外监配置数据Dp、选载组织者公布的排位结果R0,输入组织者公布的随机参数P,输入要验证的对象B;
【2】、操作者输入验证指令;
【3】、调用外监配置数据Dp及随机参数P,按照预定的外监排位算法Gp排位,得到验证方的排位结果R1,从验证方的排位结果R1中查找对象B的排位值S1,从组织者公布的排位结果R0中查找对象B的排位值S0;
【4】、比较排位值S1和排位值S0,如果这两者在内容上是一致的,就执行步骤【5】,否则就执行步骤【6】;
【5】、将排位值S0及这次计算机排位过程是公正的信息提交给汇报的交互界面Wr,然后步骤【7】;
【6】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给汇报的交互界面Wr;
【7】在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
本文所述要验证的对象B是指要验证的竞争者的身份信息。
本文所述从组织者公布的排位结果R0中查找对象B的排位值S0是指以下五种子流程之一:①在外监查询码仅由特征码构成,且对象B含有隐私的条件下,首先计算对象B中隐私的特征码Id,然后在排位结果R0的外监查询码字段中检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并将该记录及隐私赋值给排位值S0,若没找到就将没有中签的信息赋值给排位值S0;②在外监查询码由特征码和特征码之外的密文共同构成,且对象B含有隐私的条件下,首先计算对象B中隐私的特征码Id,然后在排位结果R0的外监查询码字段中检索特征码Id,若找到与特征码Id相同的特征码,就读取该字段值所在的记录,并利用对象B中隐私解密该记录密文中隐私,然后将该记录及隐私赋值给排位值S0,若没找到就将没有中签的信息赋值给排位值S0;③在对象B含有非隐私的条件下,直接在排位结果R0中与输入的对象B中非隐私相对应的字段中检索对象B的非隐私,若找到与对象B中非隐私相同的字段值,就读取该字段值所在的记录,并赋值给排位值S0,若没找到就将没有中签的信息赋值给排位值S0;④在采用了具有随机性的加密算法加密,且对象B含有隐私的条件下,将对象B作为密码逐条尝试解密排位结果R0中的密文,若成功解密一条记录的密文,就将解密的隐私和密文被解密的记录赋值给排位值S0,若所有记录中的密文都无法解密就将没有中签的信息赋值给排位值S0;⑤在采用了具有随机性的加密算法加密,且对象B既含有隐私又含有非隐私的条件下,首先在排位结果R0中检索对象B的非隐私,排除R0中与该非隐私不相符的记录,然后将对象B的隐私作为密码逐条尝试解密与非隐私相符的记录中的密文,若成功解密一条记录的密文,就将解密的隐私和密文被解密的记录赋值给排位值S0,若所有记录中的密文都无法解密就将没有中签的信息赋值给排位值S0。相对来讲,子流程③最容易实现,但子流程③中采用的非隐私要么信息量有限,要么属于临时性的信息不便使用,例如姓名、受理编号,子流程②、④、⑤较复杂,因此本文中的实施例都采用子流程①。
在该工作流程中,步骤【7】里所述前一步骤含义分为两中情况:①当执行过程是由【5】到【7】时,其含义为步骤【5】;②当执行过程是由【6】到【7】时,其含义为步骤【6】。
考虑到实际需要及其共性,本文提供一套通用工作流程。通用工作流程中的内控配置数据Dm都保存在文件Fm,外监配置数据Dp都保存在文件Fp。
参见图3,排位模块的通用工作流程如下:
【1】、启动排位程序;
【2】、显示交互界面Wg,等待人工操作;
【3】、操作者在交互界面Wg上设置内控配置数据Dm文件Fm的路径、计算机根据文件Fm刷新显示,输入文件Fm的特征码Hm,输入组织者公布的特征码Hp,输入组织者在现场利用彩票摇号机产生的随机参数P;
【4】、操作者输入排位指令;
【5】、核验特征码,特征码若一致就执行步骤【6】,若否则向组织者报告所发现的问题,提示组织者启动纠错流程,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wg,并将已经设置的各种参数显示到交互界面Wg上,等待人工处理异常;
【6】、调用内控配置数据Dm及随机参数P按照预定的内控排位算法Gm排位,得到排位结果;
【7】、在善后交互界面We上显示可验证的排位结果,等待人工善后操作。
本文所述交互界面Wg具有以下特性中的一种或多种:(1)显示软件版本;(2)显示特征码;(3)显示配置数据;(4)进行参数设置的功能及控件;(5)供操作者浏览配置数据的功能及控件;(6)核验特征码的功能及控件;(7)排位的功能及控件;(8)菜单;(9)结束流程的功能及控件;(10)打印的功能及控件;(11)保存的功能及控件。
本文所述人工操作可分为两个方向:①通过人员的一系列操作来执行下一步即步骤【3】,②结束流程。
发明内容中所述根据文件Fm刷新显示是指计算机计算文件Fm的特征码Hmc,从文件Fm计算外监配置数据Dp文件Fp的特征码Hpc,并将特征码Hmc和特征码Hpc显示到交互界面Wg上,从文件Fm将内控配置数据Dm导入,并根据导入的数据在交互界面Wg上显示竞争者数据和资源数据;
为便于表述,本文将内控配置数据Dm文件Fm的特征码称为特征码Hm,该特征码由组织者掌握,将由组织者公布的文件Fp的特征码称为特征码Hp。需要注意的是外监配置数据Dp文件Fp的特征码最好在报纸或电台进行公布,且公布时间最好与文件Fp的公布时间相同,这样即使文件Fp在公布后被黑客修改,组织方仍可及时发现问题,并纠正。
本文所述核验特征码是指计算机将特征码Hmc与操作者输入的特征码Hm进行比对,将特征码Hpc与操作者输入的特征码Hp进行比对。
本文所述等待人工处理异常可实现下列功能中的一种或多种:①结束流程;②重新核验特征码;③重新设置内控配置数据Dm文件Fm的路径;④继续排位(适用于虽没有向计算机输入特征码,但通过人工比对已确认特征码一致的情况,也适用于在纠正输入错误后再核验特征码时没发现差异的情况)。
排位模块的通用工作流程【6】中所述得到排位结果是指以下两者之一或两者:①得到向监督者公布的排位结果R0,②得到组织者内部使用的排位结果Rm。
本文所述善后交互界面We具有下列特性中的一种或多种:①打印排位结果的功能及控件;②将排位结果保存为组织者内部使用的排位结果文件的功能及控件;③将排位结果保存为向监督者公布的排位结果文件的功能及控件;④重新排位的功能及控件;⑤重新设置数据和参数重新排位的功能及控件;⑥在善后交互界面We上浏览排位结果的功能及控件;⑦结束流程的功能及控件。⑧关闭交互界面We的功能及控件;⑨关闭交互界面We并返回交互界面Wg的功能及控件。
在实际应用中我们可将善后交互界面We整合到交互界面Wg上,即两者使用同一个交互界面。
本文所述人工善后操作是指下列操作中的一种或多种:①打印排位结果;②保存排位结果为组织者内部使用的排位结果文件;③保存排位结果为向监督者公布的排位结果文件;④命令计算机重新排位;⑤重新设置数据和参数命令计算机重新排位;⑥在善后交互界面We上浏览排位结果;⑦结束流程。
本文所述纠错流程属于人工流程由组织者制订,下面提供的纠错流程仅供组织者参考。
本文推荐的纠错流程如下:
①检查特征码输入的情况,若特征码没有输入或输入错误就执行步骤②,若输入正确就执行步骤③
②输入(或重新输入)特征码并核验特征码,若确认特征码一致则继续排位,并退出纠错流程,相反不一致则执行步骤③;
③检查内控配置数据Dm文件Fm的路径设置是否正确,若设置错误则由操作者执行排位模块流程中步骤【3】重新设置路径并退出纠错流程,若设置正确则执行步骤④;
④检查排位软件版本是否与公布的软件版本相符,若不相符应关闭当前软件,运行指定的软件重新组织排位,并退出纠错流程,若相符则执行⑤;
⑤若有备用机,则启用备用机重新排位并退出纠错流程,如果没有备用机或备用机不能有效工作则中止本现场的排位活动;
⑥组织者调查特征码出现差异的原因,并及时公布真相。
外监查询模块的通用工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入要查询的对象B;
【4】、操作者输入查询指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【6】、调用外监配置数据Dp及随机参数P,按照预定的外监排位算法Gp排位,得到验证方的排位结果R1,从验证方的排位结果R1中查找对象B的排位值S1;
【7】、在交互界面Wr上,将排位值S1及相关信息显示出来,等待查询者善后操作。
本文所述交互界面Wv具有以下特性中的一种或多种:(1)显示软件版本;(2)显示特征码;(3)显示配置数据;(4)进行参数设置的功能及控件;(5)供操作者浏览配置数据的功能及控件;(6)验证特征码的功能及控件;(7)验证排位的功能及控件;(8)菜单;(9)结束流程的功能及控件;(10)打印的功能及控件;(11)保存的功能及控件;(12)查询排位的功能及控件。
本文所述交互界面Wr具有下列特性中的一种或多种:(1)打印查询结果的功能及控件;(2)保存查询结果到文件的功能及控件;(3)命令计算机重新查询的功能及控件;(4)重新设置数据和参数命令计算机重新查询的功能及控件;(5)打印验证结果的功能及控件;(6)保存验证结果到文件的功能及控件;(7)命令计算机重新验证的功能及控件;(8)重新设置数据和参数命令计算机重新验证的功能及控件;(9)结束流程的功能及控件;(10)关闭交互界面Wr的功能及控件;(11)关闭交互界面Wr并返回交互界面Wv的功能及控件。
在实际应用中我们可将交互界面Wr整合到交互界面Wv上,即两者使用同一个交互界面。甚至可将交互界面We、交互界面Wv、交互界面Wr都整合到交互界面Wg上,即四者使用同一个交互界面。
发明内容中所述根据文件Fp刷新显示是指计算机计算外监配置数据Dp文件Fp的特征码Hpc并显示到交互界面Wv上,从文件Fp将外监配置数据Dp导入,并根据导入的数据在交互界面Wv上显示竞争者数据和资源数据。
本文所述验证特征码是指计算机将特征码Hpc与操作者输入的特征码Hp进行比对。
参见图4,个体验证模块的通用工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入要验证的对象B;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、调用外监配置数据Dp及随机参数P,按照预定的外监排位算法Gp排位,得到验证方的排位结果R1,从验证方的排位结果R1中查找对象B的排位值S1,从组织者公布的排位结果R0中查找对象B的排位值S0;
【7】、比较排位值S1和排位值S0,如果这两者在内容上是一致的,就执行步骤【8】,否则就执行步骤【9】;
【8】、将排位值S0及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【10】;
【9】将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【10】在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
在该验证模块流程中,步骤【10】里所述前一步骤含义分为两中情况:①当执行过程是由【8】到【10】时,其含义为步骤【8】;②当执行过程是由【9】到【10】时,其含义为步骤【9】。
参见图5,全体验证模块的通用工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、调用外监配置数据Dp及随机参数P,按照预定的外监排位算法Gp排位,得到验证方的排位结果R1;
【7】、将验证方的排位结果R1与组织者公布的排位结果R0进行比较,如果这两者在内容上是一致的,就执行步骤【8】,否则就执行步骤【9】;
【8】、将组织者公布的排位结果R0是正确的及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【10】;
【9】将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【10】在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
在该验证模块流程中,步骤【10】里所述前一步骤含义分为两中情况:①当执行过程是由【8】到【10】时,其含义为步骤【8】;②当执行过程是由【9】到【10】时,其含义为步骤【9】。
排位组织者若要有效使用本发明中的方法,最好按照以下人工流程展开工作:
【1】、组织者公布使用的排位软件、以可下载文件的形式公布外监配置数据Dp,并在另一种媒体公布前述下载文件的特征码,公布何时采集将来何时何种的具有随机性的数据作为随机参数P的方法,指定排位结果公布时间;
【2】、运行指定的排位软件,在显示交互界面后检查排位软件的版本是否与公布的软件版本相符,若不相符应立即纠正。
【3】、选载内控配置数据Dm到交互界面,并验证选载文件的特征码及外监配置数据Dp文件Fp的特征码,然后采集随机参数P并输入采集到的随机参数P到交互界面,输入排位指令得到排位结果并在指定时间公布随机参数P和排位结果R0。
附图说明
图1为排位模块和全体验证模块的核心工作流程图,
图2为个体验证模块的核心工作流程图,
图3为排位模块的通用工作流程图,
图4为个体验证模块的通用工作流程图,
图5为全体验证模块的通用工作流程图,
图6为第一个实施例排位模块的工作流程图,
图7为第一个实施例外监查询模块的工作流程图,
图8为第一个实施例个体验证模块的工作流程图,
图9为第一个实施例全体验证模块的工作流程图。
具体实施方式
根据本发明中的核心工作流程或通用工作流程,本发明的应用者可以写出各种实施例,下面实施例中的内控配置数据Dm都保存在文件Fm中,外监配置数据Dp都保存在文件Fp中。这些实施例都是利用内控配置数据Dm生成外监配置数据Dp,该生成的步骤是:(1)初始化外监配置数据Dp;(2)将内控配置数据Dm中的资源数据复制到外监配置数据Dp中,(3)将内控配置数据Dm中的竞争者数据中的记录读取,并利用读取的数据构造外监竞争者记录添加到外监配置数据Dp中的竞争者数据中。
具体实施方式中所述利用读取的数据构造外监竞争者记录是指从读取的数据中复制受理编号和姓名到目标记录里,将读取的数据中的身份证号码和电话号码组合成一个号码,并计算该号码的特征码,将该特征码作为外监查询码添加到目标记录中。
下面实施例已经写出了具体的内控排位算法,但并不否认这些实施例的内控排位算法Gm还能使用其他的算法。
本发明第一个实施例,应用于购车摇号或证券配号,该实施例由排位模块和验证模块构成,该实施例的内控排位算法Gm采用了随机平均算法,
参见图6,第一个实施例排位模块的工作流程如下:
【1】、启动排位程序;
【2】、显示交互界面Wg,等待人工操作;
【3】、操作者在交互界面Wg上设置内控配置数据Dm文件Fm的路径、计算机根据文件Fm刷新显示,输入文件Fm的特征码Hm,输入组织者公布的特征码Hp,输入组织者在现场利用彩票摇号机产生的随机参数P;
【4】、操作者输入排位指令;
【5】、核验特征码,特征码若一致就执行步骤【6】,若否则向组织者报告所发现的问题,提示组织者启动纠错流程,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wg,并将已经设置的各种参数显示到交互界面Wg上,等待人工处理异常;
【6】、从内控配置数据Dm中,将竞争者数据记录读取到数据表L1中;
【7】、从数据表L1中抽取T条记录,添加到排位结果Rm中,其中T为指标总数;
【8】、在善后交互界面We上显示可验证的排位结果Rm,采用默认路径将排位结果Rm自动保存为组织者内部使用的文件,根据排位结果Rm生成向监督者公布的排位结果R0,然后采用默认路径将排位结果R0保存为向监督者公布的排位结果文件,然后等待人工善后操作。
其中所述根据文件Fm刷新显示是指计算机计算文件Fm的特征码Hmc,从文件Fm计算外监配置数据Dp文件Fp的特征码Hpc,并将特征码Hmc和特征码Hpc显示到交互界面Wg上,从文件Fm将内控配置数据Dm导入,并根据导入的数据在交互界面Wg上显示期次、任务描述、有效申请数量、竞争者的身份信息、可供配置的指标总数;
其中所述【7】、从数据表L1中抽取T条记录,添加到排位结果,是指如下子流程:
【I】、将随机参数P赋值给整数变量Yi,赋值整数变量Ci=0;
【II】、计算Yi=Yi%Ai,Ci=Ci+1,其中Ai为数据表L1中记录的条数;
【III】、将数据表L1中竞争者数据记录序号(以0为起点)等于Yi的记录添加到排位结果中,并在排位结果中新增的记录里登记中签序号Ci;
【IV】、判断Ci==T是否成立,若是则执行【V】,否则计算Yi=Yi+Ai/T,其中T为指标总数,然后返回【II】;
【V】、删除数据表L1,结束子流程,并返回父流程。
其中所述根据排位结果Rm生成向监督者公布的排位结果R0,是指如下子流程:
①将排位结果Rm中的受理编号、姓名、中签序号字段中的内容复制到排位结果R0中;
②定位到排位结果Rm中第一条记录;
③利用排位结果Rm中当前记录的身份证号码和电话号码构造一个字符串,接着计算该字符串的特征码,然后将该特征码作为外监查询码添加到排位结果R0对应的记录中;
④判断是否已到达排位结果Rm中最后一条记录,若是则结束子流程,并返回父流程,若否则定位到排位结果Rm中下一条记录,并返回步骤③。
其中所述排位结果R0是指由中签者的信息记录所构成的记录集合,这些记录包含:受理编号、姓名、外监查询码及中签序号。
具体实施方式中所述向监督者公布的排位结果文件的具有一种重要的特性:该文件包含有竞争者的隐私,该隐私由身份证和联系电话这两种号码共同构成,并且该隐私以特征码的形式被转化为外监查询码,即该外监查询码就是身份信息Ki中隐私的特征码。本文所述身份信息Ki包含:受理编号、姓名、身份证号码和电话号码这四者。本文所述身份信息Ki中隐私是由身份证和联系电话这两种号码共同构成。
参见图7,第一个实施例外监查询模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入查询对象的身份证号码和电话号码;
【4】、操作者输入查询指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【6】、利用查询对象的身份证号码和电话号码计算查询对象的特征码Id,
【7】、在外监配置数据Dp中的竞争者数据中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【8】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【8】、从外监配置数据Dp中,将竞争者数据记录读取到数据表L1中;
【9】、从数据表L1中抽取T条记录,添加到排位结果R1中,其中T为指标总数;
【10】、在验证方的排位结果R1中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【11】,否则执行步骤【12】;
【11】、读取该字段值所在的记录,并赋值给排位值S1,然后执行步骤【13】;
【12】、将没有中签的信息赋值给排位值S1;
【13】、在交互界面Wr上,将排位值S1及相关信息显示出来,等待查询者善后操作。
具体实施方式中所述外监配置数据Dp中的竞争者数据是由:受理编号、姓名、外监查询码这三种信息所构成,并且采用身份信息Ki中隐私的特征码作为外监查询码。
本实施例中所述根据文件Fp刷新显示是指计算机计算外监配置数据Dp文件Fp的特征码Hpc并显示到交互界面Wv上,从文件Fp将外监配置数据Dp导入,并根据导入的数据在交互界面Wv上显示期次、任务描述、有效申请数量、可供配置的指标总数、竞争者的身份信息。
参见图8,第一个实施例个体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入要验证对象的身份证号码和电话号码;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、利用验证对象的身份证号码和电话号码计算验证对象的特征码Id,
【7】、在外监配置数据Dp中的竞争者数据中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【8】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【8】、从外监配置数据Dp中,将竞争者数据记录读取到数据表L1中;
【9】、从数据表L1中抽取T条记录,添加到排位结果R1中,其中T为指标总数;
【10】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S1,否则就将没有中签的信息赋值给排位值S1;
【11】、在组织者公布的排位结果R0的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S0,否则就将没有中签的信息赋值给排位值S0;
【12】、比较排位值S1和排位值S0,如果这两者在内容上是一致的,就执行步骤【13】,否则就执行步骤【14】;
【13】、将排位值S0及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【15】;
【14】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【15】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
参见图9,第一个实施例全体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、从外监配置数据Dp中,将竞争者数据记录读取到数据表L1中;
【7】、从数据表L1中抽取T条记录,添加到排位结果R1中,其中T为指标总数;
【8】、将验证方的排位结果R1与组织者公布的排位结果R0进行比较,如果这两者在内容上是一致的,就执行步骤【9】,否则就执行步骤【10】;
【9】、将组织者公布的排位结果R0是正确的及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【11】;
【10】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【11】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
本发明第二个实施例,应用于分配经济适用房或廉租房的电脑摇号,该实施例由排位模块和验证模块构成,该实施例的内控排位算法Gm采用了配额算法,
第二个实施例排位模块的工作流程如下:
【1】、启动排位程序;
【2】、显示交互界面Wg,等待人工操作;
【3】、操作者在交互界面Wg上设置内控配置数据Dm文件Fm的路径、计算机根据文件Fm刷新显示,输入文件Fm的特征码Hm,输入组织者公布的特征码Hp,输入组织者在现场利用彩票摇号机产生的随机参数P;
【4】、操作者输入排位指令;
【5】、核验特征码,特征码若一致就执行步骤【6】,若否则向组织者报告所发现的问题,提示组织者启动纠错流程,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wg,并将已经设置的各种参数显示到交互界面Wg上,等待人工处理异常;
【6】、从内控配置数据Dm中,读取竞争者数据记录,并利用读取的数据构造外监竞争者记录添加到数据表L2中;
【7】、从数据表L2中抽取T条记录,添加到排位结果R0中,其中T为指标总数;
【8】、采用默认路径将排位结果R0自动保存为向监督者公布的排位结果文件,根据排位结果R0生成组织者内部使用的排位结果Rm,采用默认路径将排位结果Rm自动保存为组织者内部使用的文件,在善后交互界面We上显示可验证的排位结果Rm,然后等待人工善后操作。
其中所述根据文件Fm刷新显示是指计算机计算文件Fm的特征码Hmc,从文件Fm计算外监配置数据Dp文件Fp的特征码Hpc,并将特征码Hmc和特征码Hpc显示到交互界面Wg上,从文件Fm将内控配置数据Dm导入,并根据导入的数据在交互界面Wg上显示期次、任务描述、参与摇号的户数、可供配置的指标总数、竞争者的身份信息;
其中所述排位结果R0是指由中签者的信息记录所构成的记录集合,这些记录包含:受理编号、姓名、外监查询码及中签序号。
本文中所述根据排位结果R0生成组织者内部使用的排位结果Rm是指如下子流程:
①除了外监查询码字段外,将排位结果R0中其余的信息全部复制到将排位结果Rm中;
②定位到排位结果Rm中第一条记录;
③读取排位结果Rm中当前记录的受理编号,并根据该受理编号在内控配置数据Dm的竞争者数据中,找到对应记录,然后将该记录中除了姓名、受理编号之外的其余字段值全部添加到排位结果Rm中当前记录里;
④判断是否已到达排位结果Rm中最后一条记录,若是则结束子流程,并返回父流程,若否则定位到排位结果Rm中下一条记录,并返回步骤③。
本实施例中所述从数据表L2中抽取T条记录,添加到排位结果是指如下子流程:
【I】、将随机参数P赋值给整数变量Yi,将特征码Hp转化为整数并将该整数赋值给整数变量Xi,赋值整数变量Ci=0,计算
Yi=Yi+T;//其中T为指标总数
int Ti=Ai/(T/2);//Ti表示50%配额时的随机平均算法的步长
if(Ti==0)Ti=1;
【II】、计算Yi=Yi+Xi;
【III】、计算Yi=Yi%Ai,Ci=Ci+1;其中Ai为数据表L2中记录的条数;
【IV】、将数据表L2中竞争者数据记录序号(以0为起点)等于Yi的记录添加到排位结果中,并在排位结果中新增的记录里登记中签序号Ci;
【V】、判断Ai==Ci是否成立,若是则执行步骤【X】,若否则执行下一步;
【VI】、判断Ci>T/2是否成立,若是则执行步骤【VII】,若否则计算Yi=Yi+Ti,然后返回【III】;
【VII】、读取新增记录的外监查询码,将该查询码转化为整数并用该整数赋值给整数变量Xi,将数据表L2中已经中签的竞争者数据记录全部删除;
【VIII】判断Ci==T/2+1是否成立,若成立则计算Ai=Ai-Ci,并执行下一步,若不成立,则计算Ai=Ai-1,并执行下一步;
【IX】、判断Ci==T是否成立,若是则执行步骤【X】;否则执行步骤【II】;
【X】、删除数据表L2,结束子流程,并返回父流程。
第二个实施例外监查询模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入查询对象的身份证号码和电话号码;
【4】、操作者输入查询指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【6】、从外监配置数据Dp中,将竞争者数据记录读取到数据表L2中;
【7】、利用查询对象的身份证号码和电话号码计算查询对象的特征码Id;
【8】、在数据表L2中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【9】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【9】、从数据表L2中抽取T条记录,添加到排位结果R1中,其中T为指标总数;
【10】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S1,否则就将没有中签的信息赋值给排位值S1;
【11】、在交互界面Wr上,将排位值S1及相关信息显示出来,等待查询者善后操作。
本实施例中所述根据文件Fp刷新显示是指计算机计算外监配置数据Dp文件Fp的特征码Hpc并显示到交互界面Wv上,从文件Fp将外监配置数据Dp导入,并根据导入的数据在交互界面Wv上显示期次、任务描述、有效申请数量、可供配置的指标总数、竞争者的身份信息。
第二个实施例个体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入要验证对象的身份证号码和电话号码;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、从外监配置数据Dp中,将竞争者数据记录读取到数据表L2中;
【7】、利用验证对象的身份证号码和电话号码计算验证对象的特征码Id;
【8】、在数据表L2中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【9】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【9】、从数据表L2中抽取T条记录,添加到排位结果R1中,其中T为指标总数;
【10】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S1,否则就将没有中签的信息赋值给排位值S1;
【11】、在组织者公布的排位结果R0的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S0,否则就将没有中签的信息赋值给排位值S0;
【12】、比较排位值S1和排位值S0,如果这两者在内容上是一致的,就执行步骤【13】,否则就执行步骤【14】;
【13】、将排位值S0及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【15】;
【14】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【15】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
第二个实施例全体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、从外监配置数据Dp中,将竞争者数据记录读取到数据表L2中;
【7】、从数据表L2中抽取T条记录,添加到排位结果R1中,其中T为指标总数;
【8】、将验证方的排位结果R1与组织者公布的排位结果R0进行比较,如果这两者在内容上是一致的,就执行步骤【9】,否则就执行步骤【10】;
【9】、将组织者公布的排位结果R0是正确的及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【11】;
【10】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【11】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
本发明第三个实施例,应用于配置学位,该实施例由排位模块和验证模块构成,该实施例的内控排位算法Gm采用了配额算法,
第三个实施例排位模块的工作流程如下:
【1】、启动排位程序;
【2】、显示交互界面Wg,等待人工操作;
【3】、操作者在交互界面Wg上设置内控配置数据Dm文件Fm的路径、计算机根据文件Fm刷新显示,输入文件Fm的特征码Hm,输入组织者公布的特征码Hp,输入组织者在现场利用彩票摇号机产生的随机参数P;
【4】、操作者输入排位指令;
【5】、核验特征码,特征码若一致就执行步骤【6】,若否则向组织者报告所发现的问题,提示组织者启动纠错流程,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wg,并将已经设置的各种参数显示到交互界面Wg上,等待人工处理异常;
【6】、将整数变量Mi,Ni都初始化为0,并将各学校的派位人数按序读取到整数数组TA中;
【7】、从内控配置数据Dm中,读取参加第Ni+1个学校派位且选择该校志愿序号为Mi+1并且没有中签标记的学生记录,并利用读取的数据构造外监竞争者记录添加到数据表L3中;
【8】、判断Ai>0且TA[Ni]>0是否成立,若成立执行步骤【9】,若不成立则执行步骤【11】,其中Ai为数据表L3中记录的条数,TA[Ni]表示数组TA中第Ni+1个单元的整数变量;
【9】、从数据表L3中抽取TA[Ni]条记录,添加到排位结果中R0,并在内控配置数据Dm中将已经中签的学生记录作上中签标记;
【10】、判断Ai<TA[Ni]是否成立,如果是则计算TA[Ni]=TA[Ni]-Ai,如果不是则赋值TA[Ni]=0;
【11】、计算Ni=Ni+1;
【12】、判断Ni是否等于排位学校的数量,如果是则执行步骤【13】,如果不是则执行步骤【7】;
【13】、计算Mi=Mi+1,Ni=0;
【14】、判断Mi是否等于最大志愿序号,若是则执行步骤【15】,若否执行步骤【7】;
【15】、采用默认路径将排位结果R0自动保存为向监督者公布的排位结果文件,根据排位结果R0生成组织者内部使用的排位结果Rm,采用默认路径将排位结果Rm自动保存为组织者内部使用的文件,在善后交互界面We上显示可验证的排位结果Rm,然后等待人工善后操作。
其中所述根据文件Fm刷新显示是指计算机计算文件Fm的特征码Hmc,从文件Fm计算外监配置数据Dp文件Fp的特征码Hpc,并将特征码Hmc和特征码Hpc显示到交互界面Wg上,从文件Fm将内控配置数据Dm导入,并根据导入的数据在交互界面Wg上显示期次、任务描述、申请派位学生的人数、可供配置的学位总数、竞争者的身份信息、派位学校名称及在本期排位中计划派位的人数。
其中所述排位结果R0是指由中签者的信息记录所构成的记录集合,这些记录包含:受理编号、姓名、外监查询码及录取学校的名称。
本实施例中所述从数据表L3中抽取TA[Ni]条记录,添加到排位结果是指如下子流程:
【I】、将随机参数P赋值给整数变量Yi,将特征码Hp转化为整数并将该整数赋值给整数变量Xi,赋值整数变量Ci=0,计算
Yi=Yi+TA[Ni];
int Ti=Ai/(TA[Ni]/2);
if(Ti==0)Ti=1;
【II】、计算Yi=Yi+Xi,Ci=Ci+1;
【III】、计算Yi=Yi%Ai;其中Ai为数据表L3中记录的条数;
【IV】、将数据表L3中竞争者数据记录序号(以0为起点)等于Yi的记录添加到排位结果中,并向该新增的记录中添加当前派位学校名称;
【V】、判断Ai==Ci是否成立,若是则执行步骤【X】;
【VI】、判断Ci>TA[Ni]/2是否成立,若成立则执行步骤【VII】,相反若不成立,则计算Yi=Yi+Ti,然后返回【III】;
【VII】、读取新增记录的外监查询码,将该外监查询码转化为整数并用该整数赋值给整数变量Xi,将数据表L3中已经中签的竞争者数据记录全部删除;
【VIII】判断Ci==TA[Ni]/2+1是否成立,若成立则计算Ai=Ai-Ci,并执行下一步,相反若不成立,则计算Ai=Ai-1,并执行下一步;
【IX】、判断Ci==TA[Ni]是否成立,若是则执行步骤【X】;否则执行步骤【II】;
【X】、删除数据表L3中所有记录,结束子流程,并返回父流程。
第三个实施例外监查询模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入查询对象的身份证号码和电话号码;
【4】、操作者输入查询指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【6】、利用查询对象的身份证号码和电话号码计算查询对象的特征码Id,
【7】、在外监配置数据Dp中的竞争者数据中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【8】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【8】、将整数变量Mi,Ni都初始化为0,并将各学校的派位人数按序读取到整数数组TA中;
【9】、从外监配置数据Dp中,将参加第Ni+1个学校派位且选择该校志愿序号为Mi+1,并且没有中签标记的学生记录读取到数据表L3中;
【10】、判断Ai>0且TA[Ni]>0是否成立,若成立执行步骤【11】,若不成立则执行步骤【13】,其中Ai为数据表L3中记录的条数,TA[Ni]表示数组TA中第Ni+1个单元的整数变量;
【11】、从数据表L3中抽取TA[Ni]条记录,添加到排位结果R1中,并在外监配置数据Dp中将已经中签的学生记录作上中签标记;
【12】、判断Ai<TA[Ni]是否成立,如果是则计算TA[Ni]=TA[Ni]-Ai,如果不是则赋值TA[Ni]=0;
【13】、计算Ni=Ni+1;
【14】、判断Ni是否等于排位学校的数量,如果是则执行步骤【15】,如果不是则执行步骤【9】;
【15】、计算Mi=Mi+1,Ni=0;
【16】、判断Mi是否等于最大志愿序号,若是则执行步骤【17】,若否则执行步骤【9】;
【17】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S1,否则就将没有中签的信息赋值给排位值S1;
【18】、在交互界面Wr上,将排位值S1及相关信息显示出来,等待查询者善后操作。
本实施例中所述根据文件Fp刷新显示是指计算机计算外监配置数据Dp文件Fp的特征码Hpc并显示到交互界面Wv上,从文件Fp将外监配置数据Dp导入,并根据导入的数据在交互界面Wv上显示期次、任务描述、申请派位学生的人数、可供配置的学位总数、竞争者的身份信息、派位学校名称及在本期排位中计划派位的人数。
第三个实施例个体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入要验证对象的身份证号码和电话号码;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、利用验证对象的身份证号码和电话号码计算验证对象的特征码Id,
【7】、在外监配置数据Dp中的竞争者数据中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【8】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【8】、将整数变量Mi,Ni都初始化为0,并将各学校的派位人数按序读取到整数数组TA中;
【9】、从外监配置数据Dp中,将参加第Ni+1个学校派位且选择该校志愿序号为Mi+1,并且没有中签标记的学生记录读取到数据表L3中;
【10】、判断Ai>0且TA[Ni]>0是否成立,若成立执行步骤【11】,若不成立则执行步骤【13】,其中Ai为数据表L3中记录的条数,TA[Ni]表示数组TA中第Ni+1个单元的整数变量;
【11】、从数据表L3中抽取TA[Ni]条记录,添加到排位结果R1中,并在外监配置数据Dp中将已经中签的学生记录作上中签标记;
【12】、判断Ai<TA[Ni]是否成立,如果是则计算TA[Ni]=TA[Ni]-Ai,如果不是则赋值TA[Ni]=0;
【13】、计算Ni=Ni+1;
【14】、判断Ni是否等于排位学校的数量,如果是则执行步骤【15】,如果不是则执行步骤【9】;
【15】、计算Mi=Mi+1,Ni=0;
【16】、判断Mi是否等于最大志愿序号,若是则执行步骤【17】,若否则执行步骤【9】;
【17】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S1,否则就将没有中签的信息赋值给排位值S1;
【18】、在组织者公布的排位结果R0的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S0,否则就将没有中签的信息赋值给排位值S0;
【19】、比较排位值S1和排位值S0,如果这两者在内容上是一致的,就执行步骤【20】,否则就执行步骤【21】;
【20】、将排位值S0及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【22】;
【21】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【22】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
第三个实施例全体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、将整数变量Mi,Ni都初始化为0,并将各学校的派位人数按序读取到整数数组TA中;
【7】、从外监配置数据Dp中,将参加第Ni+1个学校派位且选择该校志愿序号为Mi+1,并且没有中签标记的学生记录读取到数据表L3中;
【8】、判断Ai>0且TA[Ni]>0是否成立,若成立执行步骤【9】,若不成立则执行步骤【11】,其中Ai为数据表L3中记录的条数,TA[Ni]表示数组TA中第Ni+1个单元的整数变量;
【9】、从数据表L3中抽取TA[Ni]条记录,添加到排位结果R1中,并在外监配置数据Dp中将已经中签的学生记录作上中签标记;
【10】、判断Ai<TA[Ni]是否成立,如果是则计算TA[Ni]=TA[Ni]-Ai,如果不是则赋值TA[Ni]=0;
【11】、计算Ni=Ni+1;
【12】、判断Ni是否等于排位学校的数量,如果是则执行步骤【13】,如果不是则执行步骤【7】;
【13】、计算Mi=Mi+1,Ni=0;
【14】、判断Mi是否等于最大志愿序号,若是则执行步骤【15】,若否则执行步骤【7】;
【15】、将验证方的排位结果R1与组织者公布的排位结果R0进行比较,如果这两者在内容上是一致的,就执行步骤【16】,否则就执行步骤【17】;
【16】、将组织者公布的排位结果R0是正确的及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【18】;
【17】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【18】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
本发明第四个实施例,应用于配置考位,该实施例由排位模块和验证模块构成,由于该实施例必须100%中签,所以该实施例的内控排位算法Gm采用了随机算法,
第四个实施例排位模块的工作流程如下:
【1】、启动排位程序;
【2】、显示交互界面Wg,等待人工操作;
【3】、操作者在交互界面Wg上设置内控配置数据Dm文件Fm的路径、计算机根据文件Fm刷新显示,输入文件Fm的特征码Hm,输入组织者公布的特征码Hp,输入组织者在现场利用彩票摇号机产生的随机参数P;
【4】、操作者输入排位指令;
【5】、核验特征码,特征码若一致就执行步骤【6】,若否则向组织者报告所发现的问题,提示组织者启动纠错流程,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wg,并将已经设置的各种参数显示到交互界面Wg上,等待人工处理异常;
【6】、将参加考试的学校数量赋值给整数变量Ni,将各考场的中签状态表都初始化为0;
【7】、从内控配置数据Dm中,读取在第Ni个学校学习的考生记录,并利用读取的数据构造外监竞争者记录添加到数据表L4中;
【8】、调用随机安排考位的子流程,将第Ni个学校学生考位的安排添加到排位结果R0中,计算Ni=Ni-1;
【9】、判断Ni==0是否成立,若是则执行步骤【10】,若否则执行步骤【7】;
【10】、采用默认路径将排位结果R0自动保存为向监督者公布的排位结果文件,根据排位结果R0生成组织者内部使用的排位结果Rm,采用默认路径将排位结果Rm自动保存为组织者内部使用的文件,在善后交互界面We上显示可验证的排位结果Rm,然后等待人工善后操作。
其中所述根据文件Fm刷新显示是指计算机计算文件Fm的特征码Hmc,从文件Fm计算外监配置数据Dp文件Fp的特征码Hpc,并将特征码Hmc和特征码Hpc显示到交互界面Wg上,从文件Fm将内控配置数据Dm导入,并根据导入的数据在交互界面Wg上显示期次、任务描述、参考人数、考生的身份信息、各考场的名称、对应考场的试室数量、每个试室最多安排多少考生,试室中每一排摆设几个考位;
本实施例中所述中签状态表用于记录考位安排情况,并且各标志位的数据记录该标志位位置对应的考场座位是否已经安排考生;
其中所述排位结果R0是指由考生的考位信息记录所构成的记录集合,这些记录包含以下信息:受理编号、姓名、外监查询码、考场名称、试室编号及座位号、考号。
本实施例中所述调用随机安排考位的子流程,将第Ni个学校学生考位的安排添加到排位结果是指如下流程:
【I】、将第Ni所学校学生的考场数量赋值给整数变量Mi,将第Ni所学校分到各个考场上的学生数量按序读取到整数数组TA,将整数数组TA复制到整数数组TB中,将特征码Hp转化为整数并将该整数赋值给整数变量Xi,将随机参数P赋值给整数变量Yi,然后将数据表L4中竞争者数据的第一条记录的外监查询码转化为整数并与整数变量Yi相加后再赋值给整数变量Yi;
【II】、执行
for(int i=1;i<Mi;Mi++)TA[i]=TA[i]+TA[i-1];
【III】、计算Yi=Yi+Xi,Xi=Yi%Ai,其中Ai为数据表L4中记录的条数,此时Xi表示数据表L4中中签的学生记录序号;
【IV】、执行下列语句,确定安排到哪个考场
【V】、读取第Ni所学校在第Hi+1个考场的考场编号,并将该值赋值给整数变量Hi;
【VI】、计算Yi=Yi%Bi,其中Bi为考场编号为Hi的考场的总考生数;
【VII】、判断编号为Hi考场的中签状态表的Yi处的标志位是否为1,若是则计算Yi=Yi+1,然后再执行步骤【VI】,若否则将该标志位设置为1,然后执行步骤【VIII】;
【VIII】、计算Q1=Yi/B1+1,其中B1表示每个试室安排的人数,Q1表示试室编号,
计算Q2=Yi%B1+1,Q2表示座位编号;
【IX】、将数据表L4中竞争者数据记录序号(以0为起点)等于Xi的记录添加到排位结果中,并向该新增的记录中添加考场编号为Hi的考场名称、考场编号Hi、试室编号Q1、座位编号Q2的信息,并根据这些信息和生成考号的规则产生考号添加到新记录中;
【X】、读取新增记录的外监查询码,将该外监查询码转化为整数并用该整数赋值给整数变量Xi,将数据表L4中已经中签的竞争者数据记录删除,计算Ai=Ai-1;
【XI】判断Ai==0是否成立,如果是则执行步骤【XII】,否则执行步骤【III】;
【XII】、删除数据表L4中所有记录,结束子流程,并返回父流程。
第四个实施例外监查询模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入查询对象的身份证号码和电话号码;
【4】、操作者输入查询指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【6】、利用查询对象的身份证号码和电话号码计算查询对象的特征码Id,
【7】、在外监配置数据Dp中的竞争者数据中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【8】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续查询;
【8】、将参加考试的学校数量赋值给整数变量Ni,将各考场的中签状态表都初始化为0;
【9】、从外监配置数据Dp中,将第Ni个学校的学生记录读取到数据表L4中;
【10】、调用随机安排考位的子流程,将第Ni个学校学生考位的安排添加到排位结果R1中,计算Ni=Ni-1;
【11】、判断Ni==0是否成立,若是则执行步骤【12】,若否则执行步骤【9】;
【12】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,找到与特征码Id相同的字段值,然后读取该字段值所在的记录,并赋值给排位值S1;
【13】、在交互界面Wr上,将排位值S1及相关信息显示出来,等待查询者善后操作。
本实施例中所述根据文件Fp刷新显示是指计算机计算外监配置数据Dp文件Fp的特征码Hpc并显示到交互界面Wv上,从文件Fp将外监配置数据Dp导入,并根据导入的数据在交互界面Wv上显示期次、任务描述、参考人数、考生的身份信息、各考场的名称、对应考场的试室数量、每个试室最多安排多少考生,试室中每一排摆设几个考位。
第四个实施例个体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P,输入要验证对象的身份证号码和电话号码;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、利用验证对象的身份证号码和电话号码计算验证对象的特征码Id,
【7】、在外监配置数据Dp中的竞争者数据中的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就执行步骤【8】,否则提示输入错误,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【8】、将参加考试的学校数量赋值给整数变量Ni,将各考场的中签状态表都初始化为0;
【9】、从外监配置数据Dp中,将第Ni个学校的学生记录读取到数据表L4中;
【10】、调用随机安排考位的子流程,将第Ni个学校学生考位的安排添加到排位结果R1中,计算Ni=Ni-1;
【11】、判断Ni==0是否成立,若是则执行步骤【12】,若否则执行步骤【9】;
【12】、在验证方的排位结果R1的外监查询码字段里检索特征码Id,找到与特征码Id相同的字段值,然后读取该字段值所在的记录,并赋值给排位值S1;
【13】、在组织者公布的排位结果R0的外监查询码字段里检索特征码Id,若找到与特征码Id相同的字段值,就读取该字段值所在的记录,并赋值给排位值S0,否则就将发现错误的信息赋值给排位值S0;
【14】、比较排位值S1和排位值S0,如果这两者在内容上是一致的,就执行步骤【15】,否则就执行步骤【16】;
【15】、将排位值S0及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【17】;
【16】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【17】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
第四个实施例全体验证模块的工作流程如下:
【1】、启动验证程序;
【2】、显示交互界面Wv,等待人工操作;
【3】、操作者在交互界面Wv上设置外监配置数据Dp文件Fp的路径、计算机根据文件Fp刷新显示,设置组织者公布的排位结果R0的文件路径,输入组织者公布的特征码Hp,输入组织者公布的随机参数P;
【4】、操作者输入验证指令;
【5】、验证特征码,特征码若一致就执行步骤【6】,若否则向操作者报告所发现的问题,提示操作者检查错误,并等待操作者关闭提示,在操作者关闭提示后返回交互界面Wv,以便操作者结束流程或纠正输入错误后继续验证;
【6】、将参加考试的学校数量赋值给整数变量Ni,将各考场的中签状态表都初始化为0;
【7】、从外监配置数据Dp中,将第Ni个学校的学生记录读取到数据表L4中;
【8】、调用随机安排考位的子流程,将第Ni个学校学生考位的安排添加到排位结果R1中,计算Ni=Ni-1;
【9】、判断Ni==0是否成立,若是则执行步骤【10】,若否则执行步骤【7】;
【10】、将验证方的排位结果R1与组织者公布的排位结果R0进行比较,如果这两者在内容上是一致的,就执行步骤【11】,否则就执行步骤【12】;
【11】、将组织者公布的排位结果R0是正确的及这次计算机排位过程是公正的信息提交给交互界面Wr,然后执行步骤【13】;
【12】、将不能通过验证的信息及可能存在错误操作或存在数据错误或出现机器故障或存在暗箱操作的信息提交给交互界面Wr;
【13】、在交互界面Wr上,将前一步骤提交的信息显示出来,等待验证者善后操作。
为便于操作,上面所有实施例的外监查询模块、个体验证模块都采用输入身份证号码和电话号码这两者来作为对象B,实际应用中还可采用由住址和户籍编号这两者作为对象B,也可能采用身份证号码、电话号码、查询密码这三者作为对象B,在第三、第四个实施例中还可采用学籍编号和联系电话号码这两者作为对象B,实际应用中对象B的形式并不止这几种,竞争者的身份信息中的一种或多种数据在生成外监查询码后,如果能保证外监查询码的唯一性,并且不容易破解就可作为对象B。
可以以多种方法来实现本发明的实施例,包括写在计算机可读记录介质上的计算机可读代码。计算机可读记录介质可以是任意类型的记录设备,在其中数据以计算机可读形式存储。计算机可读记录介质包括、但不局限于ROM、RAM、CD-ROM、磁带、软盘、硬盘、移动存储盘、光数据存储、和载波(例如,通过因特网的数据传输)。计算机可读记录介质可以分布在多个连接到网络的计算机系统上,以使得计算机可读代码能够以分布方式写到其上以及从其上执行。这种排位方法不仅可应用于单个计算机系统中,也可应用到网络和云系统中。另外,实现本发明的实施例所需要的功能程序、代码或代码段可以被本领域的普通技术人员解释。
尽管已经参照本发明的给定优选实施例示出并描述了本发明,但是本领域的技术人员应当理解,在不脱离如所附权利要求所限定的本发明的精神和范围的条件下,可以在这里进行形式和细节上的各种变化。