Извините, я не знаю, как правильно назвать это, потому что я не знаю, к какой теме относится этот вопрос.

Так, например, есть 5 человек. Они хотят остаться в отеле. В этом отеле можно разместить не более 2 человек на номер и не менее 1 человека. Это означает, что существует несколько возможных вариантов.

  • 1-1-1-1-1 (по 1 комнате на человека)
  • 1-2-2 (1 человек остается один, остальные 4 делятся на 2 комнаты)
  • 1-1-1-2 (... и так далее)

Каков алгоритм поиска этих вариаций?

1
Bagas Wahyu Hidayah 29 Авг 2020 в 18:18

2 ответа

Лучший ответ

Это комбинаторный вопрос, и его абстрактную версию обычно называют шарами и корзинами. Ключевой вопрос - различимы ли шары. То же самое и с мусорными баками.

В вашем примере шары - это люди, а мусорные ведра - это комнаты. Если комнаты различимы, вам также понадобится их общее количество.

Скажем, ни то, ни другое нельзя различить. Тогда единственный вопрос - сколько пар у нас есть, с вариантами 0, 1 или 2, так что есть 3 решения.

Если люди различимы, но не комнаты (мячи, но не урны), то нам важно, кто находится в парах. В этом случае 1-1-1-1-1 имеет единственное решение, 1-1-1-2 имеет select (5,2) = 10 решений (все способы, которыми мы можем выбрать, кто находится в единственной паре), и 1-2-2 имеет выбор (5,2) * выбор (3,2) / 2 = 10 * 3 = 30 решений (выберите, кто входит в первую пару, затем во вторую, затем разделите на 2, чтобы избежать двойного счета где порядок обратный). Всего решений: 41.

Если люди и комнаты различимы, то для каждого из вышеперечисленных решений нам важно, в какую комнату входит каждый человек или пара. Это будет зависеть от общего количества доступных комнат. Если имеются R-комнаты, то решение, в котором используются r-комнаты, в которых комнаты не различимы, необходимо умножить на R! / (R-r) !.

Например. В 1-1-1-2 есть 10 решений, в которых комнаты неотличимы. Если в отеле 5 номеров, то мы умножаем их на 5! / (5-4)! = 120, чтобы получить 1200 решений.

Если это люди a, b, c, d, e и есть 5 комнат с номерами 1,2,3,4,5, то решения, где b + d объединены в пары, a находится в комнате 1, а c находится в Комната 2:

a1, c2, e3, bd4
a1, c2, e3, bd5
a1, c2, e4, bd3
a1, c2, e4, bd5
a1, c2, e5, bd3
a1, c2, e5, bd4
1
Dave 29 Авг 2020 в 17:55

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

Здесь: монеты = {1,2} сумма = Количество человек

1
Akshay Bande 29 Авг 2020 в 16:04