> 给 N 个「对象」,在 T 个「轮次」中,按比例把 K 种「选项」分配出去,
> 并让每个对象每轮尽量拿到不同的选项。
> 📚 渐进式加载:本技能采用渐进式 MD 体系,SKILL.md 为入口(≤230行),详细内容拆分到 references/*.md 按需加载。
| 文件 | 说明 |
|------|------|
| references/usage.md | 详细使用指南(确认表/菜单/后处理/配置/输出) |
| references/algorithm.md | 分配算法与后处理算法说明 |
| references/antipatterns.md | 反模式与常见错误 |
| references/faq.md | FAQ 与排错指导 |
| references/changelog.md | 更新日志 |
场景 1:标准分配(等分比例)
用户:我有 33 个项目,4 个月,5 套方案,比例是 7:8:10:3:5
计算报告:已解析参数 N=33, T=4, K=5, 比例=7:8:10:3:5
结果:输出分配明细表 + 热力图表(含分布统计和 3D 散点图)
场景 2:均匀分布(避免集中)
用户:12 个学生,6 周,3 个课题,比例 4:4:4,用 fair 模式
计算报告:已解析参数 N=12, T=6, K=3, 比例=4:4:4, 模式=fair
输出结果:每周 3 个课题均匀分配,每个学生前两周不重复,热力图显示覆盖平衡
python scripts/main.py --input "33个项目,4个月,5套方案,比例7:8:10:3:5"
python scripts/main.py --input "..." --mode fair
python scripts/main.py --input "..." --no-confirm
→ 详见 references/usage.md
| 约束项 | 说明 |
|--------|------|
| 输入规模 | 建议 N ≤ 1000 个对象,T ≤ 52 轮,K ≤ 20 种选项。超过会降低性能 |
| 比例约束 | 比例之和必须等于 N。不指定比例则默认等分 |
| 参数缺失 | N/K/T 缺任意一个无法执行,工具不会自动推断 |
| 运行环境 | 脚本需 Python ≥ 3.8,仅标准库。HTML 可视化图表依赖 CDN(Chart.js + Plotly.js)|
| 后处理范围 | 后处理只影响分配显示顺序,不影响配额计算的正确性 |
正向触发:
否定条件:
round-robin-allocator/
├── SKILL.md # 入口文档
├── _meta.json # 元数据
├── references/ # 渐进式文档
│ ├── usage.md # 使用指南
│ ├── algorithm.md # 算法说明
│ └── changelog.md # 更新日志
└── scripts/
├── allocator.py # 核心算法(纯标准库)
├── main.py # CLI 入口
└── visualizer.py # HTML 生成器
> 详见 反模式
> 详见 FAQ
共 4 个版本