#arrays #algorithm #combinations
#массивы #алгоритм #комбинации
Вопрос:
У меня вопрос о комбинациях. Я разработал это приложение «Секретный Санта», которое позволяет пользователям присоединяться к подарочным группам, в которых они обмениваются подарками на определенную сумму в долларах. Когда пользователь входит в систему, он может видеть все группы, в которых он находится, вместе с участниками в каждой группе. Теперь я хочу спроектировать группы так, чтобы каждая группа случайным образом объединяла людей в пары для дарения подарков. Я хочу, чтобы алгоритм работал так, чтобы мне было гарантировано, что каждому в группе назначается человек, которому нужно дарить подарки, и человек, от которого нужно получать подарки. Так, например, если в группе три члена [A, B, C]
, я хочу A->B, B->C, C->A
.
Есть идеи, как это может работать? Не имеет значения, будет ли он использовать только один или два массива. Любая помощь или предложения приветствуются!
Комментарии:
1. Так в чем проблема? Вы что-нибудь пробовали?
2. так что просто сделайте обмен кольцами.
3. Этот вопрос касается алгоритмов, а не языков программирования. Все теги языка программирования должны быть удалены.
4. возможно, @MarkoTopolnik изучает js888 нужен алгоритм на java или js
5. @AlexKlimashevsky Если это правда, вопрос следует закрыть как «слишком широкий», потому что это запрос на написание кода с нуля на двух языках.
Ответ №1:
Позволяет n
— количество человек в группе, поэтому просто создайте пары {persons[i], persons[(i 1)%n]}
для всех людей
Комментарии:
1. Однако сначала выполните случайную перетасовку. В противном случае это нормально.