gpt4 book ai didi

java - 根据分数对学生进行分组

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:15 25 4
gpt4 key购买 nike

我正在用 Java 开发一个应用程序,它根据学生在各个科目中获得的分数来建议可能的学生组(每组两到三个学生)。在我设计自己的算法之前,我想研究类似的算法。例如,总共有两门类(class),每组也有两名学生,算法应该将学生分组,这样学生 a 应该擅长科目 1,而学生 b 应该擅长科目 b。

详细说明:输入将采用这种形式:

student1<90.38<labs
Student1<93.01<exam
Student2<90.38<labs
Student2<85.20<exams
. . .
. . .
. . .
. . .
Studentn<61.48<exams

第一部分是每个学生的唯一id,第二部分是获得的分数,第三部分是获得分数的特定类(class)组件。

该算法应根据在每个组件、实验室和考试中获得的分数创建相互补充的两个学生小组。

输出应该有点像

student1|student13|
student17|student15|
student8|student10|
. .
. .
. .
studentn|studentm|

每行对应一组两个学生。

最佳答案

这很容易。我只会告诉你算法。

  1. Make two TreeMap. One with value of all the marks in exam and one with all the marks in lab. Use Student ID as the key.
  2. Now start with first index of each TreeMap and pick the values.

    2.1. If both values have same key then pick the next one else pick both different key and remove the pair from the maps.

一个例子可能会有所帮助。假设场景如下所示

Student ID      lab       exam

1 80 10
2 50 50
3 40 70
4 20 40

所以在创建 TreeMap 之后它看起来像

labMap      examMap
<K,V> <K,V>

<1,80> <3,70>
<2,50> <2,70>
<3,40> <4,70>
<4,20> <1,70>

所以你可以看到我们首先取 1 和 3。

那么2和2是一样的,我们会选择2和4。

在 3 和 2 之后。

最后 4 和 1。

关于java - 根据分数对学生进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20932930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com