| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Задачка |
| Автор: agentjamesbolt007 5.9.2012, 09:38 | ||
Задача: нужно посчитать все возможные размещения n-го количество человек за n-m количеством стульев, причем стульев должно быть меньше чем людей. Формула такая; например чтобы рассадить 6 чел. на 4 стула нужно : 6*5*4*3 = 120
здесь умножение будет идти от заданного числа до конца, а мне нужно только на кол-во мест , непойму как обрезать лишнее умножение, нужно второй цикл писать или можно как то в одном все поставить??? |
| Автор: bsa 5.9.2012, 10:33 | ||
|
| Автор: borisbn 5.9.2012, 11:39 |
| agentjamesbolt007, есть подозрение, что формула неправильная. Откуда взялось умножение? У меня для 6 гостей и 4 стульев получилось 5+4+3+2+1 = 15 |
| Автор: bsa 5.9.2012, 11:53 |
| borisbn, вообще-то правильно используется умножение. У тебя 6 вариантов посадки на первый стул, после этого остается 5 вариантов на второй, 4 - на 3-й и 3 на 4-й. Итого: 6*5*4*3 |
| Автор: math64 5.9.2012, 12:32 | ||
Если убрать условие, что гостей больше, чем стульев то будет так:
Вариантов может оказаться слишком много (факториал растёт быстро), возможно переполнение. Может быть использовать double для результата? |
| Автор: agentjamesbolt007 5.9.2012, 12:38 |
| Спасибо! |
| Автор: borisbn 5.9.2012, 15:48 |
хммм. а где тогда ошибка в моих рассуждениях ? Стоят всегда двое. Вот варианты: 1) 1-й и 2-й 2) 1-й и 3-й 3) 1-й и 4-й 4) 1-й и 5-й 5) 1-й и 6-й 6) 2-й и 3-й 7) 2-й и 4-й 8) 2-й и 5-й 9) 2-й и 6-й 10) 3-й и 4-й 11) 3-й и 5-й 12) 3-й и 6-й 13) 4-й и 5-й 14) 4-й и 6-й 15) 5-й и 6-й |
| Автор: bsa 5.9.2012, 15:58 |
| 1.1.1.1)1234 1.1.1.2)1235 1.1.1.3)1236 1.1.2.1)1243 1.1.2.2)1245 1.1.2.3)1246 .... 2.1.1.1)2134 2.1.1.2)2135 2.1.1.3)2136 .... 6.5.4.1)6541 6.5.4.2)6542 6.5.4.3)6543 |
| Автор: math64 6.9.2012, 08:54 |
| borisbn, Ваш способ подсчета не учитывает порядок, в котором сидят сидящие. Ваш ответ получается так 6!/(4!*2!). Ответ нужный ТС - 6!/2! |
| Автор: bsa 6.9.2012, 10:35 | ||
|
| Автор: borisbn 6.9.2012, 14:30 |
| Ваш способ подсчета не учитывает порядок, в котором сидят сидящие из условий задачи не следует что это должно учитываться |
| Автор: bsa 6.9.2012, 14:48 |
Но из условия не следует и обратное. Поэтому, используется формула ТС. |
| Автор: agentjamesbolt007 6.9.2012, 15:28 |
| borisbn, bsa, да ладно вам , это не суть ))) |