OJ在线评测系统 思考主流OJ的实现方案 常用概念 自己的思考
OJ判题系统常用概念
OJ系统
在线判题系统
AC all accpeted 测试样例全部通过
题目介绍
题目输入
题目输出
题目输出用例
题目输入用例
不能让用户随便引入包 随便遍历 暴力破解 需要使用正确的算法
提交后不会立刻出结果
而是异步处理
提交后会生成一个提交记录
有运行的结果和运行信息 (时间 内存)
OJ系统最大的难点
在于判题系统
用于在线评测编程题目代码的系统 能够根据用户提交的代码 出题人预先设置的题目输入和输出用例
能够根据这些信息进行编译代码 运行代码 判断代码
运行结果是否正确
主流的OJ系统实现方案
开发原则 能用别人现成的 就不要自己写
所以我们要用现成的OJ系统
比如说
judge0
也可以自己用源码来部署
我们可以用现成的判题API
现成的代码沙箱
我们去查看接口文档
Rapid API
API的作用就是接收代码 然后返回结果
我们也可以自己开发判题系统 代码沙箱
用AI开发 就是把程序交给AI 让AI判断代码是否正确
远程判题 移花接木
模拟oj
就是把我代码保存 然后找到其他OJ 然后去提交 然后返回结果
比如说无头浏览器 去别人的项目中去提交代码 获取结果