CN110459098B - 用于上机编程题相同判定的方法、标识生成方法和系统 - Google Patents

用于上机编程题相同判定的方法、标识生成方法和系统 Download PDF

Info

Publication number
CN110459098B
CN110459098B CN201910749987.XA CN201910749987A CN110459098B CN 110459098 B CN110459098 B CN 110459098B CN 201910749987 A CN201910749987 A CN 201910749987A CN 110459098 B CN110459098 B CN 110459098B
Authority
CN
China
Prior art keywords
input data
data
programming
input
machine programming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910749987.XA
Other languages
English (en)
Other versions
CN110459098A (zh
Inventor
陈锐彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bishen Education Consulting Shenzhen Co ltd
Original Assignee
Bishen Education Consulting Shenzhen Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bishen Education Consulting Shenzhen Co ltd filed Critical Bishen Education Consulting Shenzhen Co ltd
Priority to CN201910749987.XA priority Critical patent/CN110459098B/zh
Publication of CN110459098A publication Critical patent/CN110459098A/zh
Application granted granted Critical
Publication of CN110459098B publication Critical patent/CN110459098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

一种用于上机编程题相同判定的方法、标识生成方法和系统,获取一上机编程题目的输入数据,将其分别输入到该上机编程题目和另一上机编程题目的程序中,以分别获取两个输出数据;将输入数据和两个输出数据采用相同的方式拼接后计算各自的哈希值,在依据两个哈希值的相同与否判断两个上机编程题目的相同与否。由于是采用相同的输入数据,以获取两个各自上机编程题目的程序的输出数据,再进行拼接后计算其各自的哈希值作为各自的标识,使得可以对表面上看起来不一样的两个上机编程题目的相同与否进行判断。

Description

用于上机编程题相同判定的方法、标识生成方法和系统
技术领域
本发明涉及编程题目验证技术领域,具体涉及一种用于上机编程题相同判定的方法、标识生成方法和系统。
背景技术
编程是指编写程序让计算机代为解决某个问题,对某个计算体系规定一定的计算方式,使计算机按照该方式运行,并最终得到相应结果的过程。作为实现各种信息技术、开发软件产品的基本手段和信息行业相关从业人员的核心技能,编程一直是大学计算机专业及其他相关理工科专业的核心必修课程。特别是近几年,随着国家和社会对人工智能、区块链、5G、物联网等已经或即将对人们生活产生深刻影响的前沿技术的关注,计算机编程逐渐走进了初等教育的课堂。在政策导向和社会发展趋势的双重促进作用下,许多中小学已经在试点开设编程课程,课外少儿编程培训行业更是如雨后春笋般迅猛地发展。预期未来编程能力将如英语技能和驾驶技术一般,成为所有人必备的基本技能,整个行业规模将达到并超过300亿。其中,上机做编程练习题目是学习和锻炼编程技能的必备过程,也是选拔和招聘信息技术人才的常用手段。在中学生的信息学竞赛(如NOIP等)、大学生的各种程序设计竞赛(如ICPC、CCPC等)、互联网相关企业招聘、大学编程相关课程(如程序设计基础、数据结构与算法等课程)的期末考核、计算机相关专业研究生入学考试等许多场景,都是以上机做编程题目的形式进行的。
因为编程题目的专业性要求较高,所以一般都需要请编程水平较高的人员进行出题。特别是在较高规格的专业性编程赛事中(如国际大学生程序设计竞赛、中国大学生程序设计竞赛等),主办方请人编写一道质量较高的编程题目,往往需要花费大量的人力和物力。很显然,作为通过智力劳动产生的创造性成果,上机编程题目是应该受到保护,而在实际应用中,一些质量较高的编程题目常常在未经所有者同意的情况下,就被用于盈利性的商业行为中。这种现象在编程教育领域屡见不鲜,在以往的大多数案例中,即使所有者怀疑自己的编程题目被使用,往往也无从确认。其中一个重要的原因是,侵权使用者会对原有的编程题目进行变形或包装,所以需要设计一种方法用于判断编程题目是否一致或相同。
发明内容
本发明主要解决的技术问题是设计一种用于判断编程题目是否一致或相同的判定方法。
根据第一方面,一种实施例中提供一种用于上机编程题相同判定的方法,包括:
获取满足第一上机编程题目的输入条件的一组或多组输入数据;
将每组所述输入数据输入到所述第一上机编程题目的标准程序中,以获取所述第一上机编程题目的标准程序运行后与每组输入数据对应的输出数据;
将所述输入数据与所述第一上机编程题目的标准程序运行后的输出数据进行拼接,得到拼接后的第一文件数据;
对拼接后的所述第一文件数据文本进行哈希运算,并将所述哈希运算的结果作为所述第一上机编程题目的标识;
将每组所述输入数据输入到所述第二上机编程题目的程序中,以获取所述第二上机编程题目的程序运行后与每组所述输入数据对应的输出数据;
将所述输入数据与所述第二上机编程题目的程序运行后的输出数据进行拼接,得到拼接后的第二文件数据;
对拼接后的所述第二文件数据文本进行哈希运算,并将所述哈希运算的结果作为所述第二上机编程题目的标识;
依据所述第一上机编程题目的标识和所述第二上机编程题目的标识判断所述第一上机编程题目和所述第二上机编程题目是否相同;
所述第一上机编程题目的标识和所述第二上机编程题目的标识相同,则判断所述第一上机编程题目和所述第二上机编程题目相同,反之,则不同。
根据第二方面,一种实施例中提供一种用于上机编程题目相同判定的标识生成方法,包括:
获取满足所述上机编程题目的输入条件的一组或多组输入数据;
将每组所述输入数据输入到所述上机编程题目的标准程序中,以获取所述标准程序运行后与每组输入数据对应的输出数据;
将所述输入数据与输出数据进行拼接,得到拼接后的文件数据;
对拼接后的文件数据文本进行哈希运算,并将所述哈希运算的结果作为所述上机编程题目的标识。
进一步,将每组输入数据拼接在其相应的输出数据之前。
进一步,将拼接后的多组输入数据和与其相应的输出数据按拼接的先后顺序进行排列,以得到拼接后的文件数据。
进一步,对拼接后的文件数据文本进行sha256哈希运算。
进一步,依据所述第一上机编程题目的文本信息,对所述第一上机编程题目的输入信息进行数字形式转化,以获取满足所述第一上机编程题目输入条件的输入数据的数字化表达公式;
以随机种子方式生成满足数字化表达公式的一组或多组所述输入数据。
进一步,所述数字化表达公式为:
Type[lower_bound,upper_bound],
其中,Type表示输入数据的类型,lower_bound表示输入数据的最小值,upper_bound表示输入数据的最大值,所述输入数据的类型包括整型、浮点型或字符型。
根据第三方面,一种实施例中提供一种用于上机编程题目相同判定的标识生成系统,包括:
输入数据获取装置,用于获取满足所述上机编程题目的输入条件的一组或多组输入数据;
输出数据获取装置,用于将每组所述输入数据输入到所述上机编程题目的标准程序中,以获取与该组输入数据相应的输出数据;
文件数据获取装置,用于将所述输入数据与输出数据进行拼接,得到拼接后的文件数据;
标识输出装置,用于对拼接后的文件数据文本进行哈希运算,并输出所述哈希运算的结果,以作为所述上机编程题目的标识。
进一步,所述输入数据获取装置还用于依据所述上机编程题目的文本信息,对所述上机编程题目的输入信息进行数字形式转化,以获取满足所述上机编程题目输入条件的输入数据的数字化表达公式,再以随机种子方式生成满足数字化表达公式的一组或多组所述输入数据。
依据上述实施例的用于上机编程题相同判定的方法、标识生成方法和系统,获取满足第一上机编程题目的输入条件的输入数据,将其输入第一上机编程题目的标准程序,以获取输出数据,将该输入数据和第一上机编程题目的标准程序的输出数据进行拼接后计算其哈希值,以作为第一上机编程题目的标识;再将该输入数据按输入第一上机编程题目的标准程序的顺序输入到第二上机编程题目的程序中,以获取第二上机编程题目的程序的输出数据,也将输入数据和第二上机编程题目的程序的输出数据进行拼接后计算其哈希值,以作为第二上机编程题目的标识;再依据第一上机编程题目的标识和第二上机编程题目的标识判断第一上机编程题目和第二上机编程题目是否相同。由于是采用相同的输入数据,以获取两个题目各自的程序的输出数据,再进行拼接后计算其各自的哈希值作为各自的标识,使得可以对表面上看起来不一样的两个上机编程题目的相同与否进行判断。
附图说明
图1为一种实施例中用于上机编程题相同判定的方法流程示意图;
图2为另一种实施例中用于上机编程题相同判定的标识生成方法流程示意图;
图3为另一种实施例中用于上机编程题目相同判定的标识生成系统的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
有别于其他传统学科的考试试题,上机编程题目大多依附于特定的在线判题系统(Online Judge,OJ,如北大POJ、浙江大学ZOJ、Codeforces、LeetCode等),并以数字化的形式组织和保存,以便计算机可以自动化地进行判题。例如,一道编程题目通常包括:
1)题面:描述一个需要编写程序让计算机代为解决的特定的问题;
2)标准程序:用特定编程语言编写的,可解决该问题的程序;
3)输入数据:用于测试做题者所编写代码正确性的多组特定格式的数据,输入数据的格式一般会在题面中给出;
4)输出数据:对上述输入数据所期望得到的正确输出结果。
为了便于直观地理解,以下给出一道简单的编程题目《A+B问题》作为例子,题面为:
问题描述:
标准程序:计算a+b;
输入数据:输入两个整数,分别代表a和b(0<=a,b<=10);
输出数据:输出一个整数,代表a+b;
样例输入为1 2,样例输出为3。
标准程序:
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
则,输入数据1:0 0;输出数据1:0;
输入数据2:3 5;输出数据2:8;
输入数据3:10 10;输出数据3:20。
目前已公开的所有线上资源确权方法或系统,都是将线上数字资源的标识信息存储在确权中心的数据库中,这个数据库是中心化的数据库,或是基于区块链技术的分布式数据库。在进行编程题目一致性判定时,通过检索数据库中的内容,全文或模糊比对数字资源的标识信息,判断待判定的数字资源所有者。
编程题目标识的获取方法主要有两种。传统的方法是基于哈希的思想,对数字资源文本进行采样预处理后,使用哈希算法生成资源的唯一标识。对于上机编程题目来说,这种方法的鲁棒性是很差的,因为只要在不改变题目核心语义的基础上修改题目文本的某些部分,就可以很方便地产生一道表面看起来不同但实际相同的“换汤不换药“的题目。要进行有效地资源标识,需要脱离上机编程题目的题面文本信息,从题目内在核心语义的角度智能地生成上机编程题目的确权标识;另一种方法是使用人工智能技术,利用机器学习的方法构建人工神经网络,让所设计的模型从大量的数据中进行有监督的训练和学习,从文本结构中提取数字资源的内在特征,以此来生成数字资源的确权标识。这种方法在理论上可以很大程度地提高雷同资源的识别率,但至少就目前的境况来说,该技术方案在上机编程题目确权的场景下是没有可实施的现实基础的。原因是目前已有的上机编程题目并未达到通常情况下有监督机器学习模型训练所需要的数据量,并且有很大部分的题目是不公开的,没有成熟的数据集可供训练。而现有的公开的无监督机器学习方法,也都无法直接应用于数字资源确权。
在本申请实施例中,获取一上机编程题目的输入数据,将其分别输入到该上机编程题目和另一上机编程题目的程序中,以分别获取两个输出数据;将输入数据和两个输出数据采用相同的方式拼接后计算各自的哈希值,在依据两个哈希值的相同与否判断两个上机编程题目的相同与否。
实施例一
如图1所示,为一种实施例中用于上机编程题相同判定的方法流程示意图,本申请公开的方法包括:
步骤一,获取输入数据。
获取满足第一上机编程题目的输入条件的一组或多组输入数据,依据第一上机编程题目的文本信息,对第一上机编程题目的输入信息进行数字形式转化,以获取满足第一上机编程题目输入条件的输入数据的数字化表达公式,再以随机种子方式生成满足数字化表达公式的一组或多组输入数据。一实施例中,第一上机编程题目的输入数据的数字化表达公式为:
Type[lower_bound,upper_bound],
其中,Type表示输入数据的类型,lower_bound表示输入数据的最小值,upper_bound表示输入数据的最大值,输入数据的类型包括整型、浮点型或字符型。设定一个固定的随机数生成种子seed和参数t,依据数字化表达公式,使用设定的随机数生成种子seed生成t组输入数据。
步骤二,获取第一上机编程题目的输出数据。
将每组输入数据输入到第一上机编程题目的标准程序中,以获取第一上机编程题目的标准程序运行后与每组输入数据对应的输出数据。一实施例中,运行第一上机编程题目提供的标准程序,将t组输入数据作为该标准程序的输入,依次输入到该标准程序中,以依次获取t组输出数据。
步骤三,获取第一文件数据。
将输入数据与第一上机编程题目的标准程序运行后的输出数据进行拼接,得到拼接后的第一文件数据。一实施例中,将每组输入数据拼接在其相应的输出数据之前,再将拼接后的多组输入数据和与其相应的输出数据按拼接的先后顺序进行排列,以得到拼接后的文件数据。一实施例中,将每组输入数据拼接在其相应的输出数据之后,再将拼接后的多组输入数据和与其相应的输出数据按拼接的先后顺序进行排列,以得到拼接后的文件数据。一实施例中,将每组输入数据按输入标准程序的顺序依次排列,再将每组输出数据按输入标准程序的输出顺序依次排列,再将排列好的输入数据和输出数据进行拼接,可将排列好的输入数据拼接在排列好的输出数据之前或之后,以得到拼接后的文件数据。
步骤四,获取第一上机编程题目的标识。
对拼接后的第一文件数据文本进行哈希运算,并将哈希运算的结果作为第一上机编程题目的标识。一实施例中,对拼接后的第一文件数据文本进行sha256哈希运算,将哈希运算后的结果作为第一上机编程题目的标识。
步骤五,获取第二上机编程题目的输出数据。
将每组输入数据输入到第二上机编程题目的程序中,以获取第二上机编程题目的程序运行后与每组输入数据对应的输出数据。一实施例中,将每组输入数据输入到第二上机编程题目的程序中,以获取第二上机编程题目的程序运行后与每组输入数据对应的输出数据。一实施例中,运行第二上机编程题目提供的程序,将t组输入数据作为该程序的输入,依次输入到该程序中,以依次获取t组输出数据。
步骤六,获取第二文件数据。
将输入数据与第二上机编程题目的程序运行后的输出数据进行拼接,得到拼接后的第二文件数据。一实施例中,才用步骤三的方法将输入数据与第二上机编程题目的程序运行后的输出数据进行拼接,以得到拼接后的文件数据。
步骤七,获取第二上机编程题目的标识。
对拼接后的第二文件数据文本进行哈希运算,并将哈希运算的结果作为第一上机编程题目的标识。一实施例中,对拼接后的二文件数据文本进行sha256哈希运算,将哈希运算后的结果作为第二上机编程题目的标识。
步骤八,依据上机编程题目的标识判断相同。
依据第一上机编程题目的标识和第二上机编程题目的标识判断第一上机编程题目和第二上机编程题目是否相同。一实施例中,第一上机编程题目的标识和第二上机编程题目的标识相同时,则判断第一上机编程题目和第二上机编程题目相同,反之,则判断第一上机编程题目和第二上机编程题目不同。
本申请实施例中,公开了一种用于上机编程题相同判定的方法,获取满足第一上机编程题目的输入条件的输入数据,将其输入第一上机编程题目的标准程序,以获取输出数据,将该输入数据和第一上机编程题目的标准程序的输出数据进行拼接后计算其哈希值,以作为第一上机编程题目的标识;再将该输入数据按输入第一上机编程题目的标准程序的顺序输入到第二上机编程题目的程序中,以获取第二上机编程题目的程序的输出数据,也将输入数据和第二上机编程题目的程序的输出数据进行拼接后计算其哈希值,以作为第二上机编程题目的标识;再依据第一上机编程题目的标识和第二上机编程题目的标识判断第一上机编程题目和第二上机编程题目是否相同。由于是采用相同的输入数据,以获取两个题目各自的程序的输出数据,再进行拼接后计算其各自的哈希值作为各自的标识,使得可以对表面上看起来不一样的两个上机编程题目的相同与否进行判断。该方法不考虑题面描述的文本信息,对人为的相同题目的不同表达方法能够产生相同的标识,不需要预先提供大量数据进行模型训练,步骤简单,易于实现,可实施性强。
实施例二
如图2所示,为一种实施例的用于上机编程题相同判定的标识生成方法流程示意图,该方法包括:
步骤1,获取输入数据。
获取满足上机编程题目的输入条件的一组或多组输入数据。依据上机编程题目的文本信息,对上机编程题目的输入信息进行数字形式转化,以获取满足上机编程题目输入条件的输入数据的数字化表达公式,再以随机种子方式生成满足数字化表达公式的一组或多组输入数据。一实施例中,上机编程题目的输入数据的数字化表达公式为:
Type[lower_bound,upper_bound],
其中,Type表示输入数据的类型,lower_bound表示输入数据的最小值,upper_bound表示输入数据的最大值,输入数据的类型包括整型、浮点型或字符型。设定一个固定的随机数生成种子seed和参数t,依据数字化表达公式,使用设定的随机数生成种子seed生成t组输入数据,以作为上机编程题目的输入数据。
步骤2,获取上机编程题目的输出数据。
将每组输入数据输入到上机编程题目的标准程序中,以获取标准程序运行后与每组输入数据对应的输出数据。一实施例中,运行上机编程题目提供的标准程序,将t组输入数据作为该标准程序的输入,依次输入到该标准程序中,以依次获取t组输出数据。
步骤3,获取文件数据。
将输入数据与上机编程题目的标准程序运行后的输出数据进行拼接,得到拼接后的文件数据。一实施例中,将每组输入数据拼接在其相应的输出数据之前,再将拼接后的多组输入数据和与其相应的输出数据按拼接的先后顺序进行排列,以得到拼接后的文件数据。一实施例中,将每组输入数据拼接在其相应的输出数据之后,再将拼接后的多组输入数据和与其相应的输出数据按拼接的先后顺序进行排列,以得到拼接后的文件数据。一实施例中,将每组输入数据按输入标准程序的顺序依次排列,再将每组输出数据按输入标准程序的输出顺序依次排列,再将排列好的输入数据和输出数据进行拼接,可将排列好的输入数据拼接在排列好的输出数据之前或之后,以得到拼接后的文件数据。
步骤4,获取上机编程题目的标识。
对拼接后的文件数据文本进行哈希运算,并将哈希运算的结果作为上机编程题目的标识。一实施例中,对拼接后的文件数据文本进行sha256哈希运算,将哈希运算后的结果作为上机编程题目的标识。
一实施例中,该方法还包括:
保存输入数据和上机编程题目的标识,以用于与其它上机编程题目的相同判定。
为了便于理解本申请的实施例,下面以编程题目《A+B问题》为例,具体步骤包括:
1)将该编程题目的输入数据的数字化表达公式为:
Type[lower_bound,upper_bound],
其中,Type表示输入数据的类型,lower_bound表示输入数据的最小值,upper_bound表示输入数据的最大值,本例中输入数据的类型为整型。
即本例中的数字化表达公式为:
I[0,10]J[0,10]
其中,I为第一输入数据,且小于10大于0;J为第二输入数据,且小于10大于0。
2)获取输入数据。
设定一个固定的随机数生成种子seed和参数t=3,则使用seed生成3组输入数据,根据数字化表达的输入格式,每组数据包括2个整数,如下:
输入数据1:1 3
输入数据2:4 3
输入数据3:2 9
3)获取输出数据。
运行题目中的标准程序,将3组输入数据依次作为输入输入到标准程序中,以依次获取3组输出数据如下:
输出数据1:4
输出数据2:7
输出数据3:11
4)获取文件数据。
将输入数据和输出数据进行拼接,以获取文件数据如下:
1 3
4
4 3
7
2 9
11
5)获取上机编程题目的标识。
对文件数据进行sha256哈希运算,一生成哈希结果为:
89256a3fb86fe56caf803f95fff8c4a6ddc7c4b3f775f9ba01d967b8c7feb64c,
将该哈希结果作为该上机编程题目的标识。
本申请还公开了一种用于上机编程题目相同判定的标识生成系统,请参考参考图3,为另一种实施例中用于上机编程题目相同判定的标识生成系统的结构示意图,包括输入数据获取装置10、输出数据获取装置20、文件数据获取装置30和标识输出装置40。输入数据获取装置10用于获取满足上机编程题目的输入条件的一组或多组输入数据。输出数据获取装置20用于将每组输入数据输入到上机编程题目的标准程序中,以获取与该组输入数据相应的输出数据。文件数据获取装置30用于将输入数据与输出数据进行拼接,得到拼接后的文件数据。标识输出装置40用于对拼接后的文件数据文本进行哈希运算,并输出哈希运算的结果,以作为上机编程题目的标识。一实施例中,输入数据获取装置10还用于依据上机编程题目的文本信息,对上机编程题目的输入信息进行数字形式转化,以获取满足上机编程题目输入条件的输入数据的数字化表达公式,再以随机种子方式生成满足数字化表达公式的一组或多组输入数据。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

Claims (6)

1.一种用于上机编程题目相同判定的标识生成方法,其特征在于,包括:
获取满足所述上机编程题目的输入条件的一组或多组输入数据;
将每组所述输入数据输入到所述上机编程题目的标准程序中,以获取所述标准程序运行后与每组输入数据对应的输出数据;
将所述输入数据与输出数据进行拼接,得到拼接后的文件数据;
对拼接后的文件数据文本进行哈希运算,并将所述哈希运算的结果作为所述上机编程题目的标识;
所述获取满足所述上机编程题目的输入条件的一组或多组输入数据,包括:
依据所述上机编程题目的文本信息,对所述上机编程题目的输入信息进行数字形式转化,以获取满足所述上机编程题目输入条件的输入数据的数字化表达公式;
以随机种子方式生成满足数字化表达公式的一组或多组所述输入数据;
所述数字化表达公式为:
Type[lower_bound, upper_bound],
其中,Type表示输入数据的类型,lower_bound表示输入数据的最小值,upper_bound表示输入数据的最大值,所述输入数据的类型包括整型、浮点型或字符型。
2.如权利要求1所述的方法,其特征在于,所述将所述输入数据与输出数据进行拼接,得到拼接后的文件数据,包括:
将每组输入数据拼接在其相应的输出数据之前。
3.如权利要求2所述的方法,其特征在于,还包括:
将拼接后的多组输入数据和与其相应的输出数据按拼接的先后顺序进行排列,以得到拼接后的文件数据。
4.如权利要求1所述的方法,其特征在于,所述对拼接后的文件数据文本进行哈希运算,包括:
对拼接后的文件数据文本进行sha256哈希运算。
5.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1-4中任一项所述的方法。
6.一种用于上机编程题目相同判定的标识生成系统,其特征在于,包括:
输入数据获取装置,用于获取满足所述上机编程题目的输入条件的一组或多组输入数据;
输出数据获取装置,用于将每组所述输入数据输入到所述上机编程题目的标准程序中,以获取与该组输入数据相应的输出数据;
文件数据获取装置,用于将所述输入数据与输出数据进行拼接,得到拼接后的文件数据;
标识输出装置,用于对拼接后的文件数据文本进行哈希运算,并输出所述哈希运算的结果,以作为所述上机编程题目的标识;
所述输入数据获取装置还用于依据所述上机编程题目的文本信息,对所述上机编程题目的输入信息进行数字形式转化,以获取满足所述上机编程题目输入条件的输入数据的数字化表达公式,再以随机种子方式生成满足数字化表达公式的一组或多组所述输入数据;
所述数字化表达公式为:
Type[lower_bound, upper_bound],
其中,Type表示输入数据的类型,lower_bound表示输入数据的最小值,upper_bound表示输入数据的最大值,所述输入数据的类型包括整型、浮点型或字符型。
CN201910749987.XA 2019-08-14 2019-08-14 用于上机编程题相同判定的方法、标识生成方法和系统 Active CN110459098B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910749987.XA CN110459098B (zh) 2019-08-14 2019-08-14 用于上机编程题相同判定的方法、标识生成方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910749987.XA CN110459098B (zh) 2019-08-14 2019-08-14 用于上机编程题相同判定的方法、标识生成方法和系统

Publications (2)

Publication Number Publication Date
CN110459098A CN110459098A (zh) 2019-11-15
CN110459098B true CN110459098B (zh) 2021-09-21

Family

ID=68486531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910749987.XA Active CN110459098B (zh) 2019-08-14 2019-08-14 用于上机编程题相同判定的方法、标识生成方法和系统

Country Status (1)

Country Link
CN (1) CN110459098B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455971A (zh) * 2010-10-28 2012-05-16 无锡江南计算技术研究所 应用级随机指令测试方法、系统及装置
CN107977347A (zh) * 2017-12-04 2018-05-01 海南云江科技有限公司 一种题目去重方法和计算设备
CN109635256A (zh) * 2018-12-20 2019-04-16 上海掌门科技有限公司 用于校验数据的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9070090B2 (en) * 2012-08-28 2015-06-30 Oracle International Corporation Scalable string matching as a component for unsupervised learning in semantic meta-model development
US20190005030A1 (en) * 2017-06-30 2019-01-03 EverMem, Inc. System and method for providing an intelligent language learning platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455971A (zh) * 2010-10-28 2012-05-16 无锡江南计算技术研究所 应用级随机指令测试方法、系统及装置
CN107977347A (zh) * 2017-12-04 2018-05-01 海南云江科技有限公司 一种题目去重方法和计算设备
CN109635256A (zh) * 2018-12-20 2019-04-16 上海掌门科技有限公司 用于校验数据的方法和装置

Also Published As

Publication number Publication date
CN110459098A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
John The policy agendas project: a review
CN109740048B (zh) 一种课程推荐方法及装置
Zhang et al. One-shot learning for question-answering in gaokao history challenge
Pardos et al. Imputing KCs with representations of problem content and context
CN113886567A (zh) 一种基于知识图谱的教学方法及系统
Mansouri et al. Overview of arqmath-3 (2022): Third clef lab on answer retrieval for questions on math
Ganeshan et al. An intelligent student advising system using collaborative filtering
Hosseini et al. A study of concept-based similarity approaches for recommending program examples
Wu et al. Digital art feature association mining based on the machine learning algorithm
Yu et al. Representing and predicting student navigational pathways in online college courses
CN110459098B (zh) 用于上机编程题相同判定的方法、标识生成方法和系统
Anikin et al. Ontology-based approach to decision-making support of conceptual domain models creating and using in learning and scientific research
Kokensparger Guide to Programming for the Digital Humanities: Lessons for Introductory Python
Parsons et al. Discovery of research trends in computer science education on ethics using topic modeling
Alaofi et al. Personalisation of Generic Library Search Results Using Student Enrolment Information.
Liu et al. Design of adaptive learning system based on big data
Horovitz et al. Boocture: Automatic educational videos hierarchical indexing with ebooks
Seyler et al. Automated question generation for quality control in human computation tasks
Wang [Retracted] Optimization of Child Literature Curriculum Settings for Preschool Education Based on Numerical Analysis
Choudhury et al. Autostyle: Scale-driven hint generation for coding style
Tyshchenko et al. Electronic System" All-Ukrainian Toloka Archival Card Index": Structure, Tools, Prospects of Development.
Hewitt et al. The reception of education reforms through the Blogosphere
Meyer et al. CoMoTo: the collaboration modeling toolkit
Hansen Analyzing programming projects
Deng et al. An apriori-based approach for teaching evaluation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant