Алгоритм распределения чисел по нескольким группам с подгруппами

Есть целые цифры от 1.
Нужно их распределить по группам. Количество групп не известно.
Для примера нужно распределить по двум группам. У каждой группы есть вложенная подгруппа.
То есть, например, есть цифра 2. Её нужно определить в одну из верхних групп (первую или вторую), а затем в одну из подгрупп (тоже первую или вторую).
Распределить по верхним группам можно с помощью остатка от деления. Но если по такому принципу действовать с подгруппой, то цифры из группы 1 будут попадать в подгруппу 1, а цифры из группы 2 будут попадать в подгруппу 2, так как остаток от деления для группы и подгруппы будет одинаковым и деление на подгруппы будет таким же как и деление на группы.
Как можно равномерно присвоить каждой цифре группу и все цифры в этой группе распределить по нескольким подгруппам, тоже равномерно?
Что-то вроде:
цифра 1 попадает в группу 1, подгруппу 1.
цифра 2 попадает в группу 2, подгруппу 1.
цифра 3 попадает в группу 1, подгруппу 2.
цифра 4 попадает в группу 2, подгруппу 2.
цифра 5 попадает в группу 1, подгруппу 1.
И так далее.
Алгоритм для каждой цифры должен выдавать постоянно одну и туже группу и подгруппу. Поэтому случайное определение группы не подходит.

1 ответов


Ох, очень трудно разобрать, что имеется ввиду в задаче, но попробую предположить:
Есть N целых ЧИСЕЛ в диапазоне [1;k], из них уникальных ЧИСЕЛ - M, 1<=M<=k. Есть 2 группы, у каждой по 2 подгруппы (т.е. общее число подгрупп - p=4) . Необходимо M уникальных чисел распределить по p подгруппам, так?
Тогда просто набор M делим на кол-во подгрупп с остатком и получается что у вас будет примерно по 1/4 от набора в каждой подгруппе и 1/2 в каждой группе. Вот и все.