Алгоритм совпадения раундов быстрого знакомства [Java] - PullRequest
0 голосов
/ 28 апреля 2020

Это вопрос о логике c и реализации Java.

Допустим, у вас есть 6 мужчин и 6 женщин, у вас должно быть 6 раундов скоростных знакомств, чтобы каждый мужчина говорил с каждым женщина. - Один мужчина не может разговаривать с женщиной более одного раза и наоборот.

Как это можно реализовать в компьютерной науке logi c?

Допустим, данные выглядят следующим образом:

Men = [ "John", "Jack", "James", "Joe", "Jamal", "Jeff ]
Women = [ "Jill", "Jane", "June", "Jackie", "Joan", "Janet" ]

Спаривание первого раунда может выглядеть следующим образом:

John -> Jill
Jack -> Jane
James -> June
Joe -> Jackie
Jamal -> Joan
Jeff -> Janet

В следующем раунде оно должно выглядеть следующим образом и т. Д .:

John -> Janet
Jack -> Jill
James -> Jane
Joe -> June
Jamal -> Jackie
Jeff -> Joan

Требуется выход для хранения ArrayList или аналогичных пар, таких как [["John", "J anet] [" Jack "," Jill "]]

Раунды должны храниться как ArrayList ArrayLists или аналогично, с RoundName в качестве ключа и 6 парами в качестве значений.

1 Ответ

0 голосов
/ 29 апреля 2020

Самый простой способ - использовать вложенные циклы для перебора массива и добавления элементов в каждую итерацию.

ArrayList<String> couples = new ArrayList<String>();

for(int i = 0; i < Men.length; i++){
  for(int j = 0; j < Women.length; j++){
    couples.add(Men[i] + " " + Women[j]);
  }
}

Для двух массивов размера M и N потребуется M * N шагов

...