Случайное распределение переменных по парам - C#
Формулировка задачи:
Здравствуйте, как реализовать подобное.
Даны 6 переменных, (например: p1, p2, p3, p4, p5, p6 )
Которые посредством textbox'ов записываются в массивы, после чего к ним рандомно присваются заранее имеющиеся дефолтные значения (например: m1, m2, m3, m4 / s1, s2, s3, s4).
В результате должно выдаваться нечто подобное:
p3 - p5: m3,s4
p1 - p4: m4,s1
p6 - p2: m1,s3
Решение задачи: «Случайное распределение переменных по парам»
textual
Листинг программы
IEnumerable<Tuple<double,double>> GetPairs(IEnumerable<double> input)
{
var set = new HashSet<double>(input);
var r = new Random();
while (set.Count > 1)
{
int x = r.Next(set.Count);
int y;
do y = r.Next(set.Count); while (y == x); //Получили 2 различающихся x и y.
double atX = set.ElementAt(x), atY = set.ElementAt(y);
set.Remove(atX);
set.Remove(atY);
yield return new Tuple<double, double>(atX, atY);
}
}