Комбинации — объединение людей из массива

#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. Однако сначала выполните случайную перетасовку. В противном случае это нормально.