You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于性别、分组与年龄限制的夏令营宿舍分配编程方案求助

夏令营宿舍分配编程解决方案求助

我正在做一个个人项目,想通过编程解决夏令营手动分配宿舍的繁琐工作,不确定这里是否适合提问,若有更合适的方向也欢迎告知。

数据集

Python版本:

import pandas as pd

data = {
    "ID": [1, 2, 3, 4, 5, 6, 7],
    "NAME": ["male_1", "male_2", "male_3", "male_4", "female_1", "female_2", "female_3"],
    "M_F": ["M", "M", "M", "M", "F", "F", "F"],
    "AGE": [9, 5, 8, 6, 10, 11, 9],
    "GROUP": ["1,2,3", "1,2,3", "1,2,3", pd.NA, "5,6", "5,6", pd.NA]
}

df = pd.DataFrame(data)

R版本:

df <- data.frame(
  ID = c(1, 2, 3, 4, 5, 6, 7),
  NAME = c("male_1", "male_2", "male_3", "male_4", "female_1", "female_2", "female_3"),
  M_F = c("M", "M", "M", "M", "F", "F", "F"),
  AGE = c(9, 5, 8, 6, 10, 11, 9),
  GROUP = c("1,2,3", "1,2,3", "1,2,3", NA, "5,6", "5,6", NA),
  stringsAsFactors = FALSE
)

数据集示例:

IDNAMEM_FAGEGROUP
1male_1M91,2,3
2male_2M51,2,3
3male_3M81,2,3
4male_4M6NA
5female_1F105,6
6female_2F115,6
7female_3F9NA
...............

数据集共约100人,部分人员有指定分组(最多7人一组),部分无分组(GROUP为NA)。

宿舍规格

  • 4间3人宿舍
  • 13间4人宿舍
  • 4间7人宿舍
  • 4间8人宿舍

总容纳量为124人(43 +134 +47 +48),存在剩余空间。

分配规则

  • 男女必须分住不同宿舍;
  • 需保留原有分组,GROUP为NA的人员可与任意组同住任意宿舍;
  • 单宿舍内最年长者与最年幼者的年龄差不超过4岁。

我正在用R处理该问题,也略懂Python,恳请提供解决方案或思路。

内容的提问来源于stack exchange,提问作者David Kundrat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 03:06:07