Комбинация групп и решение проблем.Какой алгоритм я могу использовать? - PullRequest
1 голос
/ 21 января 2011

У этой проблемы такое чувство, что у нее должно быть имя. Надеюсь, кто-нибудь сможет это узнать.

В клубе 32 члена. Каждую неделю участники обедают вместе, разделяя себя на 8 столов по 4 участника в каждом. Каждую неделю они устраивают себя так, что всегда сидят с разными людьми.

Возможно ли, чтобы каждый человек сидел с каждым другим человеком ровно один раз?

Я пытался программировать жадный подход, но он не работал для этих чисел (он работал для клуба из 16 человек с 4 столами по 4 в каждом, но не 36 членов с 6 столами по 6 человек) *

Хотя это звучит как домашнее задание, на самом деле это от мамы моего друга, которая пытается организовать эти обеды.

Ответы [ 2 ]

4 голосов
/ 21 января 2011

В группе 32 человека, поэтому вам нужно поужинать с остальными 31 человеком.

Поэтому нет, вы не можете обедать с кем-то еще ровно один раз.

31 - простое число. Вы должны обедать с 3 людьми одновременно, так как есть 4 на стол. Невозможно поужинать с 31 человеком, по 3 человека одновременно, без повторения или пропуска никого. (31 не делится на 3).

QED

0 голосов
/ 21 января 2011

Затем вернитесь назад, и вы получите все возможные комбинации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...