测试数据生成器CYaRon

Project CYaRon

CYaRon Yet Another Random Olympic-iNformatics test data generator

By Luogu 项目地址: https://github.com/luogu-dev/cyaron

你是否遇到以下情况:

  • 希望在5分钟内写出一组随机数据,并方便地使用它们对拍几个程序
  • 希望生成一个合适的随机图或者树,且有一定强度
  • 希望生成一组随机数列或者向量,且不能重复。

那么,你可以借助 CYaRon 和 Python ,来快速生成一组数据。

目前支持的特性有:

  • 建一个随机图(简单图或者非简单图,有向图或无向图,带权图或者无权图)
  • 建一个随机树(链状、随机树、或者菊花图,而且可以设定树的强弱)
  • 生成一组允许相同或者互相不同的多维向量(可以较快速度生成10^6组、范围到10^9的向量或者数列)
  • 根据函数解析式生成数列
  • 生成一些随机多边形,并且可以求面积、周长等
  • 从字典生成随机字符串、单词、句子、段落
  • 使用以上功能生成的数据和您其他地方下载的测试数据方便地进行程序对拍

快速上手指南

稳定版本可以从pip获取: pip install cyaron,在此之前,需要准备好Python。

最新开发版可以克隆GitHub源代码: git clone https://github.com/luogu-dev/cyaron.git

请您查看CYaRon文档CYaRon基本入门来学习如何使用CYaRon。

若您发现文档中有缺漏,请提出Issue并暂时根据examples和源代码进行YY。

CYaRon基于Python。若您对Python不熟悉,可看快速入门教程

之后计划实现云Generator,即只需提供写好的脚本以及std,上传到服务器,即可下载一个测试数据的压缩包,真正实现5分钟生成一个测试数据!

希望各位大佬一起来协助改进这个项目。希望这个项目可以帮助大家节省时间!

使用范例

#!/usr/bin/env python

from cyaron import * # 引入CYaRon的库

_n = ati([0, 7, 50, 1E4]) # ati函数将数组中的每一个元素转换为整形,方便您可以使用1E4一类的数来表示数据大小
_m = ati([0, 11, 100, 1E4]) 

# 这是一个图论题的数据生成器,该题目在洛谷的题号为P1339
for i in range(1, 4): # 即在[1, 4)范围内循环,也就是从1到3
    test_data = IO(file_prefix="heat", data_id=i) # 生成 heat[1|2|3].in/out 三组测试数据

    n = _n[i] # 点数
    m = _m[i] # 边数
    s = randint(1, n) # 源点,随机选取一个
    t = randint(1, n) # 汇点,随机选取一个
    test_data.input_writeln(n, m, s, t) # 写入到输入文件里,自动以空格分割并换行

    graph = Graph.graph(n, m, weight_limit=5) # 生成一个n点,m边的随机图,边权限制为5
    test_data.input_writeln(graph) # 自动写入到输入文件里,默认以一行一组u v w的形式输出

    test_data.output_gen("D:\\std_binary.exe") # 标程编译后的可执行文件,不需要freopen等,CYaRon自动给该程序输入并获得输出作为.out

文章作者: crazyX
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 crazyX !
评论
 上一篇
2017广西邀请赛B题-Colorit-HDU-6183-CDQ分治 2017广西邀请赛B题-Colorit-HDU-6183-CDQ分治
维护两种操作,操作1往点$(x, y) (1 \leq x, y \leq 10^6)$加入一个颜色为$c (0 \leq c \leq 50)$的点,操作2查询矩形区域 $(1 \leq a \leq x, y_1 \leq b \leq
2017-09-07
下一篇 
定制hexo博客 定制hexo博客
之前花了点时间将博客从WordPress迁移到了hexo,并且使用了著名的next作为博客主题,整体上还是很不错的,然后自己稍微添加了一些东西,在这里做一些记录。 Github由于hexo可以将内容生成静态页面,那么就可以很方便的利用gi
2017-09-05
  目录