Нужно написать алгоритм выборки уникальных значений ID пользователей
Нужно написать алгоритм выборки уникальных значений ID пользователей "От кого – кому", в каждой итерации равной количеству id.
Данные по каждой выборке сохраняются в БД, и каждая последующая выборка сравнивается с предыдущими.
На входе - массив id (отправители и получатели - одни и те же). Количество ID может меняться (могут добавляться или удаляться), поэтому каждая операция сравнения должна учитывать предыдущие результаты. "Отправитель" не может являться "получателем". Отправитель и получатель в каждой итеррации не повторяются. Например:
I (1-2, 2-3, 3-4, 4-1)
II (1-3, 2-4, 3-1, 4-2)
II (1-4, 2-1, 3-2, 4-3)
При достижения лимита, "отправителю" добавляется индекс, после этого, он считается уникальным "отправителем". Количество пар строго должно равняться количеству ID в массиве.
III(1a-2, 2a-3, 3a-4, 4a-1)
IV (1a-3, 2a-4, 3-5, 4a-2, 5-1)
...
PS предусмотреть вариант, что бы не выпадала комбинация, когда "отправитель" является единственным вариантом получателя
1-2, 2-3, 3-1 – 4-?