Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

generator.py の C++ 版を書く #5

Open
kmyk opened this issue Apr 9, 2020 · 3 comments
Open

generator.py の C++ 版を書く #5

kmyk opened this issue Apr 9, 2020 · 3 comments

Comments

@kmyk
Copy link
Member

kmyk commented Apr 9, 2020

僕は雑魚すぎてPython全然書けないんですよね...
多分少なからず需要はあると思います

— こるとん (@kyort0n) April 9, 2020

ところで C++ 版といってもいくつかの選択肢がある (まあ全部やれば済むという話はある)

  1. C++ の標準ライブラリの random
    • cons: 標準的で分かりやすい
    • cons: include が不要なので楽
  2. testlib.h を使う
    • https://github.com/MikeMirzayanov/testlib
    • pros: 作問やったことある人にとっては楽
    • cons: 作問やったことない人にとってはしんどい (どうせ Python の generator.py はすでにあるし、作問してる勢にとっての使いやすさを優先したさはある)
    • cons: 複数ファイルを生成する形式なので oj generate-input subcommand との相性は悪い
    • pros: 複数ファイルを生成する形式なのでファイル名を指定して生成ができる
  3. Library Checker の random.h を勝手に使う
@kmyk kmyk mentioned this issue Apr 9, 2020
14 tasks
@kmyk
Copy link
Member Author

kmyk commented Apr 10, 2020

とりあえず標準ライブラリ random を使うものを書いた

@yosupo06
Copy link

ccされたので、私見を書いておきます

3. Library Checker の random.h を勝手に使う

  • pros: Library-Checker勢は使いやすいかも

  • pros: 乱数がxoshiro256**なので、testlib(線形合同法)よりいい(乱数の質が問題になることがあるかはわからない)

  • cons: uniform_int_distributionなど標準との互換性がない、意図的なので追加もない

  • pros: 各種ケース生成機能は入れてもいいと思っている

  • cons: common/randomにテストがないので、高度な機能を入れるとバグりがちそう(これは修正しないと)

@kmyk
Copy link
Member Author

kmyk commented Apr 11, 2020

中身を把握してる人のコメント助かる
とりあえず library-checker-problems 側にも issue を立てておきました yosupo06/library-checker-problems#400

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants