学生群体中的分数平等分配

时间:2015-07-31 14:26:14

标签: mysql

我有一个特定学校的学生数据库。

student_name |math | science| english| social
---------------------------------------------
Aakas        | 80  |  70    |   90   |   55
Aphi         | 30  |  80    |   67   |   79
Geeta        | 60  |  89    |   95   |   87
pradip       | 70  |  78    |   67   |   65
Nikita       | 45  |  78    |   90   |   48
Shanti       | 69  |  90    |   67   |   84 

学生数字n是1000。

我需要做的是将学生分成以下几个小时。组(例如m为250)。这样一个群体中的每个主体都应该具有接近平均的分数。对于上述情况,仅考虑数学,数学的平均分数为59(对于给定的六名学生)。如果我们将六名学生分成两组,每组包含3名学生。第1组= {Aakas, Abhi, Geeta}第2组= {Pradip, Nikita, Shanti}

第1组的数学平均值56.67接近59第2组,数学中的平均61.33接近59

仅考虑数学就是这种情况。我们必须考虑所有科目,使得每组的平均分数接近整个学生的个别科目的平均分。怎么解决?

2 个答案:

答案 0 :(得分:1)

数据库TABLE不是SPREADSHEET。

无论您认为自己正在尝试解决什么问题,第一步都是将您的架构规范化为更多类似于以下内容的内容:

+--------------+---------+-------+
| student_name | subject | score |
+--------------+---------+-------+
| Aakas        | math    |    80 |
| Aphi         | math    |    30 |
| Geeta        | math    |    60 |
| pradip       | math    |    70 |
| Nikita       | math    |    45 |
| Shanti       | math    |    69 |
| Aakas        | science |    70 |
| Aphi         | science |    80 |
| Geeta        | science |    89 |
| pradip       | science |    78 |
| Nikita       | science |    78 |
| Shanti       | science |    90 |
| Aakas        | english |    90 |
| Aphi         | english |    67 |
| Geeta        | english |    95 |
| pradip       | english |    67 |
| Nikita       | english |    90 |
| Shanti       | english |    67 |
| Aakas        | social  |    55 |
| Aphi         | social  |    79 |
| Geeta        | social  |    87 |
| pradip       | social  |    65 |
| Nikita       | social  |    48 |
| Shanti       | social  |    84 |
+--------------+---------+-------+

答案 1 :(得分:0)

这是一个简单的群集问题,您可以使用K-Means