Skip to content

weilycoder/rdgc

Repository files navigation

RDGC Data Generator for Contests

Release Last Commit github PyPI sata-license

GitHub Issues or Pull Requests GitHub Downloads Stars Forks

由于我现在常用的数据生成器在 API 设计上令人迷惑,我决定自己编写一个生成器。

features

目前计划支持的特性:

  • 生成随机图
    • 随机图
    • 空图(null graph)
    • 完全图(complete graph)
    • 竞赛图(tournament graph)
    • 随机树(随机父亲)
    • 随机树(随机连边)
    • 二叉树(binary tree)
    • 链图(chain graph)
    • 菊花图(star graph)
    • 圈图(cycle graph)
    • 轮图(wheel graph)
    • 从度数序列随机生成图(蒙特卡洛方法)
    • 生成 $k$-正则图( $k$-regular Graph)
    • 生成网格图
    • 将多个图组合在一起
  • 生成特定类型的数字
    • 支持从范围中随机选择质数。
  • 生成特定类型的数字序列
    • 生成给定递推函数的序列(递归实现)
  • 调用 std 生成 ans 文件
  • 杂项
    • 从命令行参数获取随机种子
    • 批量将 CRLF 格式转换为 LF 格式

PyPI

项目上传了 PyPI,因此你可以使用:

pip install rdgc

来下载最新版。

项目也将同时上传到 Test PyPI,因此也可以:

pip install -i https://test.pypi.org/simple/ rdgc

当然,后者不是推荐行为。

Semantic Versioning

原则上,我是支持 语义化版本 的,但是由于现在项目随时可能出现 Bug 和 idea,并可能由于使 API 更可读而重构,因此将项目版本号维持在 0.x.x 以说明处于快速开发阶段。

计划在完成大部分 idea 后进行一次重构并将版本号改为 1.x.x

目前尽量遵循以下规范:

  • 若引入了重要的数据生成 API(被记录在 README 文件),则将次版本号递增;
  • 若加入了小的 API 或 Bug 修复,将修订号递增。

当然,暂时更可能看我心情。

License

项目没有额外声明的部分使用 SATA 许可证,如果你认为我的项目有用,请考虑在 Github 为我点赞。

项目的 API 设计参考了 CYaRon,如果有人认为我需要为此修改许可证,请联系我;后者的推荐方式是在 issue 中说明。

Pylint

项目使用 Pylint 检查 Python 语法。

全局禁用的检查包括:

  • unnecessary-lambda-assignment (C3001)
  • duplicate-code (R0801)
  • too-many-public-methods (R0904)
  • too-many-return-statements (R0911)
  • too-many-branches (R0912)
  • too-many-arguments (R0913)
  • too-many-locals (R0914)
  • keyword-arg-before-vararg (W1113)

在测试脚本中禁用了所有出现的警告,包括但不限于注释缺失。

在项目主文件中禁用的警告使用具体名称而非代码。

About

RDGC Data Generator for Contests

Topics

Resources

License

Stars

Watchers

Forks

Languages