c/c++或python编程思路,关于学生互相评分?

要求:n个学生互相评分,每个学生给另外m个学生评分。
假设是5个学生,id是1-5。
每个学生给另外2个人评分,每人只能收到2份他人对自己的评分结果。

最初的想法是: 对某学生A,用随机函数产生不等于A的id的两个id数,对应的学生为B和C,然后判断学生B和C是否已经被选过2次了。
但是发现可能会产生如下表的情况

学生id 所评价的2个学生的id
1 2 3
2 1 4
3 2 4
4 3 5
当前4个学生情况如上所示时,id为2、3、4的学生分别都被评分两次了,所以第5个学生只有下面的选择
5 1 5
这样就违背了不能给自己评分的规矩。

求问符合要求的编程思路,谢谢!

2个回答

u014708700
1234rst 评论写不开了,具体请见下一层楼的回答。
2 年多之前 回复
u014708700
1234rst 我还是不太理解,能具体说明一下吗?比如组合C53吧,有10个结果,而学生互相评分这个只需要5组,还要确保每个人都恰好被平分两次,这个怎么实现呢?
2 年多之前 回复

5选3结果是:123,124,125,134,135,234,235,245,345。
学生id 所评价的2个学生的id
1 : 2 3
2 : 1 4
3 : 2 4
4 : 3 5
这是前4个学生评分的情况,也符合5选3组合的结果中的四组,
但是当前4个学生情况如上所示时,id为2、3、4的学生分别都被评分两次了,第5个学生评分情况很明显不能从上述组合结果中取有5的一组了。

u014708700
1234rst @caozhy
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问