🚫未经作者授权,禁止转载!
📢本文仅介绍使用 AI 辅助生成测试点数据方法。如需纯人工出数据,请移步到这篇文章。
洛谷镜像文章(不保证更新速度,点击打开)
一、为什么使用 AI 生成数据?
传统纯手工出测试点数据常面临三大难题:
- 耗时耗力:需要根据题目需要手动修改生成测试点程序,人工速度较慢。
- 易错:人工有时会遗漏微小的细节,导致数据质量不高甚至低下。
- 成本高:花费较高价格(对于部分学生党来说,几十块已经算是巨款)请人但是出的数据质量不怎么样,且对于不同的编程语言兼容性较差。
AI辅助生成测试点数据的优势:
- 节约时间:出题人只需按照教程无脑的将提示词发送给 AI 生成程序,本地(编译)运行即可生成高质量的数据点。
- 数据质量高: AI 首先会将题目分析一遍,再给出生成数据代码,相对来说比人工可靠性更高。
- 价格低廉:大部分 AI 的生成成本较低,甚至免费,对于日常使用已经足够。而且 AI 对于不同编程语言的兼容性较强。
二、操作步骤
第一步:设计”提问说明书”
好的提示词是成功的关键,需包含几个要素:
1.要求描述
❌模糊提问:”根据题目生成用于生成题目测试点数据的代码”。
✅精准提问:”你要帮助我生成用于生成题目测试点数据的代码,标准程序在运行目录下……”。
2.需求描述
如”生成边界(极限)数据”等等。
3.提示词模板
下面是一组由我手动编写的 AI 提示词模板,直接无脑复制简单修改即可(强烈推荐自己编写,以更好的适配不同类型的题目,增加数据质量):
题目:
【题目markdown源码】
请你为上面的题目编写用于生成输入(.in后缀)输出测试点数据的【语言,如c++】代码,并使用随机数等生成较大的数据,程序的运行环境是【语言+版本,如c++17】,系统是【系统+版本,如win11】。题目的正确程序文件和编译后的可执行文件放在运行目录下的【标准程序文件名,如data.cpp】中,程序编译后的可执行文件是【标准程序编译后的可执行文件,如data.exe】。一共生成【测试点数量,如10】组测试点,其中【包含/不包含】样例,并自动运行标准程序生成输出(.out后缀)测试点文件,将测试点保存在程序目录下。请确保你编写程序生成的测试点符合题目要求并且保证强度,每个分组至少要有1个极限(边界)测试点数据。
备注:被【】
包裹的均需自行按实际填写,不懂的可以看下面给的示例。
第二步:选择一个可靠,好用的 AI
三、常见问题解答
Q:暂无
A:
四、实践示例
使用P1048作为测试题目,选用@2023z的题解为标准(正确)代码。
以下是我与deepseek的对话记录: