首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从愿望列表中获得最佳可能的分配

从愿望列表中获得最佳可能的分配
EN

Stack Overflow用户
提问于 2020-08-02 09:57:57
回答 1查看 64关注 0票数 0

首先,我为我糟糕的英语感到抱歉,希望你能理解我的要求。

在我们学校,毕业生必须在最后一年为论文挑选一个题目。每个学生从一个学科领域挑选一位导师来帮助他们。

起始位置

  • 每个学生必须精确地指定三个愿望,这些愿望按偏好的降序排序。例如: 1.乔布斯先生/ 2.盖茨先生/ 3.马斯克
  • 先生每一位导师最多可监督三名学生

我如何确保尽可能多的学生实现他们的第一个愿望?在剩下的学生中,尽可能多的人应该得到第二个愿望,其余的得到第三个愿望。

哪种编程语言最适合这个问题: PHP,Access,Excel?

到目前为止,我们用手工对愿望进行排序,这一过程需要几个小时。有时几天。

我们想要使这一过程自动化。非常感谢你的每一个想法,每一个方法,每一个暗示。

理想案例:我们有一份清单,上面列出了分配给他们的导师和学生。

示例:

  • -> Stacy先生,Carl,Melody
  • 盖茨-> William先生,Eric,夏洛特
  • 先生马斯克·安东尼先生,莎拉,Nelly

先生

最美好的祝愿,保持健康!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-02 11:25:48

如果输入数组的格式正确..。

$preferencesOfStudents是学生,他们的优先老师是有序的。

代码语言:javascript
复制
function shuffle_assoc($list) { 
  if (!is_array($list)) return $list; 

  $keys = array_keys($list); 
  shuffle($keys); 
  $random = array(); 
  foreach ($keys as $key) { 
    $random[$key] = $list[$key]; 
  }
  return $random; 
} 
$preferencesOfStudents = [
  'students' => [
      'Stacy' => ['Mr Jobs','Mr Gates','Mr Musk'],
      'Carl' => ['Mr Jobs','Mr Gates','Mr Musk'],
      'Melody' => ['Mr Jobs','Mr Musk','Mr Gates'],
      'William' => ['Mr Musk','Mr Gates','Mr Jobs'],
      'Eric' => ['Mr Gates','Mr Jobs','Mr Musk'],
      'Charlott' => ['Mr Jobs','Mr Gates','Mr Musk'],
      'Anthony' => ['Mr Gates','Mr Musk','Mr Jobs'],
      'Sarah' => ['Mr Gates','Mr Jobs','Mr Musk'],
      'Nelly' => ['Mr Gates','Mr Musk','Mr Jobs']
    ]
];

// 1 = Jobs, 2 = Gates, 3 = Musk
$teachers = [
  'Mr Jobs' => [],
  'Mr Gates' => [],
  'Mr Musk' => []
];
$randomstudentsarray = shuffle_assoc($preferencesOfStudents['students']);
//print_r($randomstudentsarray);
foreach($randomstudentsarray as $name => $student){
  if(count($teachers[$student[0]]) < 3){
    $teachers[$student[0]][] = $name;
  } elseif(count($teachers[$student[1]]) < 3) {
    $teachers[$student[1]][] = $name;  
  } else {
    $teachers[$student[2]][] = $name;
  }
  
  
}

print_r($teachers);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63214635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档