CYaRon:測(cè)試數(shù)據(jù)生成利器-轉(zhuǎn)自洛谷

Project CYaRon

CYaRon Yet Another Random Olympic-iNformatics test data generator

By Luogu 項(xiàng)目地址: https://github.com/luogu-dev/cyaron

你是否遇到以下情況:

  • 希望在5分鐘內(nèi)寫出一組隨機(jī)數(shù)據(jù),并方便地使用它們對(duì)拍幾個(gè)程序

  • 希望生成一個(gè)合適的隨機(jī)圖或者樹,且有一定強(qiáng)度

  • 希望生成一組隨機(jī)數(shù)列或者向量,且不能重復(fù)。

那么,你可以借助 CYaRon 和 Python ,來快速生成一組數(shù)據(jù)。目前支持的特性有:

  • 建一個(gè)隨機(jī)圖(簡(jiǎn)單圖或者非簡(jiǎn)單圖,有向圖或無向圖,帶權(quán)圖或者無權(quán)圖)

  • 建一個(gè)隨機(jī)樹(鏈狀、隨機(jī)樹、或者菊花圖,而且可以設(shè)定樹的強(qiáng)弱)

  • 生成一組允許相同或者互相不同的多維向量(可以較快速度生成106組、范圍到109的向量或者數(shù)列)

  • 根據(jù)函數(shù)解析式生成數(shù)列

  • 生成一些隨機(jī)多邊形,并且可以求面積、周長(zhǎng)等

  • 從字典生成隨機(jī)字符串、單詞、句子、段落

  • 使用以上功能生成的數(shù)據(jù)和您其他地方下載的測(cè)試數(shù)據(jù)方便地進(jìn)行程序?qū)ε?/p>

快速上手指南

穩(wěn)定版本可以從pip獲取: pip install cyaron,在此之前,需要準(zhǔn)備好Python。

最新開發(fā)版可以克隆GitHub源代碼: git clone https://github.com/luogu-dev/cyaron.git

請(qǐng)您查看CYaRon文檔CYaRon基本入門來學(xué)習(xí)如何使用CYaRon。

若您發(fā)現(xiàn)文檔中有缺漏,請(qǐng)?zhí)岢鯥ssue并暫時(shí)根據(jù)examples和源代碼進(jìn)行YY。

CYaRon基于Python。若您對(duì)Python不熟悉,可看快速入門教程。

之后計(jì)劃實(shí)現(xiàn)云Generator,即只需提供寫好的腳本以及std,上傳到服務(wù)器,即可下載一個(gè)測(cè)試數(shù)據(jù)的壓縮包,真正實(shí)現(xiàn)5分鐘生成一個(gè)測(cè)試數(shù)據(jù)!

希望各位大佬一起來協(xié)助改進(jìn)這個(gè)項(xiàng)目。希望這個(gè)項(xiàng)目可以幫助大家節(jié)省時(shí)間!

使用范例

#!/usr/bin/env python

from cyaron import * # 引入CYaRon的庫

_n = ati([0, 7, 50, 1E4]) # ati函數(shù)將數(shù)組中的每一個(gè)元素轉(zhuǎn)換為整形,方便您可以使用1E4一類的數(shù)來表示數(shù)據(jù)大小
_m = ati([0, 11, 100, 1E4]) 

# 這是一個(gè)圖論題的數(shù)據(jù)生成器,該題目在洛谷的題號(hào)為P1339
for i in range(1, 4): # 即在[1, 4)范圍內(nèi)循環(huán),也就是從1到3
    test_data = IO(file_prefix="heat", data_id=i) # 生成 heat[1|2|3].in/out 三組測(cè)試數(shù)據(jù)

    n = _n[i] # 點(diǎn)數(shù)
    m = _m[i] # 邊數(shù)
    s = randint(1, n) # 源點(diǎn),隨機(jī)選取一個(gè)
    t = randint(1, n) # 匯點(diǎn),隨機(jī)選取一個(gè)
    test_data.input_writeln(n, m, s, t) # 寫入到輸入文件里,自動(dòng)以空格分割并換行

    graph = Graph.graph(n, m, weight_limit=5) # 生成一個(gè)n點(diǎn),m邊的隨機(jī)圖,邊權(quán)限制為5
    test_data.input_writeln(graph) # 自動(dòng)寫入到輸入文件里,默認(rèn)以一行一組u v w的形式輸出

    test_data.output_gen("D:\\std_binary.exe") # 標(biāo)程編譯后的可執(zhí)行文件,不需要freopen等,CYaRon自動(dòng)給該程序輸入并獲得輸出作為.out
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容