@akass
Developer

Нужен эвристический алгоритм заполнения таблицы или существует обычный?

Подскажите в какую сторону думать.
Нужно придумать алгоритм заполнения таблицы.
Нужно заполнить нужные ячейки, так чтобы в каждой строке было было заполнено N ячеек, в каждом столбце было заполнено M ячеек и чтобы каждая случайная пара ячеек повторялась встречалась в двух строках.
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 1
Mrrl
@Mrrl
Заводчик кардиганов
Сразу можно сказать, что число столбцов в таблице - L=M*(N-1)/2+1, число строк - K=M*L/N. Оба этих числа должны быть целыми.
В частном случае, когда N=q+1, M=2*(q+1), где q - простое число или степень простого, матрицу построить можно, в ней каждая строка будет встречаться дважды, а верхняя (и нижняя) половинка матрицы будет матрицей инцидентности конечной проективной плоскости. В остальных случаях - боюсь, что нужна эвристика, или вообще полный перебор. Всё-таки, это получается задача о покрытии - надо покрыть удвоенный набор рёбер полного графа с L вершинами непересекающимися графами с N вершинами. Свойство "в каждом столбце M ячеек" выполнится автоматически.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы