LINUX.ORG.RU

Комбинаторика на отрезке

 ,


0

3

Всем бобра! Столкнулся в жизни с задачкой, с которой уже сталкивался в курсе стат.меха, но благополучно забыл решение. Смысл такой:
Eсть большой отрезок дискретной длины m, есть k отрезков дискретной длины n, так что n*k <= m. Сколько существует способов расположить эти отрезки (которых k штук) на отрезке длины m?
Естественно все расстояния между краями любых отрезков могут быть только целыми числами.
PS Обычно эта задачка в школьных олимпиадах формулируется в виде птиц, которые хотят усесться на провод или прищепок на веревке.

Перемещено leave из talks

★★★

а что мешает взять оставшееся место m-n*k и представить в виде единичных отрезков, а потом посчитать кол-во перестановок?

Deleted
()
Ответ на: комментарий от Deleted

Во первых они одинаковые (т е перестановки тут не при чем), т.е. порядок не важен. Но важны интервалы между ними. Т.е
<---+++-+++-+++->
<--+++--+++--+++>
это разные расположения

LIKAN ★★★
() автор топика
Ответ на: комментарий от Deleted

Это разные расположения
<---+++-+++-+++-> и <--+++--+++--+++>
Это
<---+++-+++-+++-> and <-+++-+++-+++--->
тоже разные. Сочетания этот кейс никак не обрабатывают. Единственное уточнение, что в каждом расположении должны участвовать все k отрезков.

LIKAN ★★★
() автор топика

Вот такое решение пришло в голову:

Если зафиксировать последовательность k отрезков, сколькими способами можно их разместить на отрезке не меняя порядка?

Весь целевой отрезок можно представить как m1*k1*m2*k2*...*kn*m(n+1). Нужно найти сколько существует способов заполнения вектора <m1 ... m(n+1)> целыми положительными числами, при том что их сумма всегда должна быть равна недостаче в длине суммы k1..kn до длины m.

Если эту сумму обозначить как m', то каждый из n+1 промежутков получит от 0 до m' целых единиц. Значит, с другой стороны, каждую из m' единиц можно приписать к одному из n+1 отрезков, и число способов это сделать равно числу сочетаний с повторениями из n+1 по m'.

Теперь, значя число способов разместить k отрезков в зафиксированной последовательности, надо домножить его на количество таких последовательностей (т.е. k! в данном случае).

abacaba
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.