У меня есть массив, содержащий несколько учеников. Я хочу, чтобы они случайным образом перекрестно сортировали друг друга, т. Е. Каждый студент оценивал кого-то и оценивался кем-то другим (эти два человека могут быть или не быть одним и тем же лицом).Сопоставьте элемент массива с другим элементом в этом массиве
Вот мое близкое к рабочему решению. Одна из серьезных проблем с этим кодом заключается в том, что последнему человеку, возможно, придется оценивать себя, если все остальные были сопоставлены.
Меня очень интересует работающее и элегантное решение.
def randomize(student_array)
graders = student_array.dup
gradees = student_array.dup
result = {}
graders.each do |grader|
gradee = grader
while gradee == grader
gradee = gradees.sample
end
result[grader] = gradee
gradees.delete_at(gradees.index(gradee))
end
return result
end
Если ученик A будет студенткой класса B, значит ли это, что студент B обязательно будет студенткой A? –
Не обязательно. Это нормально, если это произойдет. – Heisenberg