У меня есть массив людей со следующими полями (JSON). Допустим, у меня 1000 таких людей. Я хочу создать две похожие (в совокупности), но случайно сгенерированные группы по 200 в каждой. У них должны быть похожие мужчины и женщины; такое же количество людей определенных возрастных групп, и такое же общее количество яблок и такое же общее количество апельсинов.
{
"id": 1,
"gender": "M",
"age": "25 - 34",
"apples": 20,
"oranges": 14
}
Я думал о том, чтобы перетасовать мой массив людей, а затем взять случайного человека из массива и добавить его в первую группу. Предполагая, что случайный человек, которого я взял из массива, - это человек выше, я бы затем попытался найти случайного 25-34-летнего мужчину и выбрать человека с наименьшим средним квадратом разницы яблок + апельсинов. Если нет человека, который соответствует этому, я бы ослабил условия и взял бы женщину той же возрастной группы ... и расслабил бы условия, пока я просто не выбрал случайного человека из исходного массива, если я не мог найти соответствие .
Есть ли лучший способ сделать это?