Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: AleksKN
Расчет численности избирателей на избирательных участках.
Имеется таблица со следующими полями:
Дом, Численность, СоседнийДом_1, СоседнийДом_2 и т.д. до СоседнийДом_8
Таблица содержит 100 тыс. записей (100 тысяч домов) с численностью от 1 (частный дом) до 1000 (многоквартирный дом) человек. Каждый дом имеет соседний (к примеру, берется дом в прямой видимости), соседних домов может быть от одного до восьми. Все соседние дома перечисляются в поле Дом, имеют количество жильцов и перечисление своих соседей.
Задача стоит следующая: Для формирования избирательных участков необходимо отобрать группу домов с общей численностью в 2500 человек. Количество в группе должно быть максимально приближенно к 2500 человек, но не менее 1000 и не более 2800. Группа домов не должна разрываться (избирательный участок не должен иметь разрывов).
Методика расчета следующая: Берётся дом №1 с количеством, к примеру, 500 человек, добавляется в группу, берётся следующий дом и из поля СоседнийДом_1, также добавляется в группу, затем из поля СоседнийДом_2 и т.д. Далее берутся в группу дома по необходимости, уже соседи соседей. В случае перебора или недобора по количеству, происходит возврат назад и исключение какого либо из соседних домов, но при условии, что исключённый дом может быть включён в другою группу (избирательный участок) т.е. он не останется изолированным внутри группы. Дома, которые попали в группу из категории СоседнийДом, в расчётах поля Дом в дальнейшем не учувствуют.
Как можно программно выполнить эту задачу?


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.