| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Помогите с задачей |
| Автор: otshelnik9 28.5.2010, 21:08 |
| ВОт задача: из группы студентов n нужно получить шруппу студентов m для уборки, сколькими способами это можно сделать (n>m). |
| Автор: ФедосеевПавел 29.5.2010, 07:53 |
| Учебник математики - комбинаторика - сочетания. http://ru.wikipedia.org/wiki/Сочетания |
| Автор: otshelnik9 29.5.2010, 08:52 | ||||
| Ага спасибо, я уже нашол Вот что-то наклепал, но какая-то ошибка в коде и не уверен что скобочки правильно раставил...
|
| Автор: ~FoX~ 29.5.2010, 09:08 | ||
Otv не может быть integer
Вообще лишнее |
| Автор: otshelnik9 29.5.2010, 10:09 |
| Всё равно ошибка type mismatch |
| Автор: ~FoX~ 29.5.2010, 11:05 | ||
Еще раз
|
| Автор: otshelnik9 29.5.2010, 17:53 |
| Вроде всё работает но считает она не то что-то... |
| Автор: ФедосеевПавел 30.5.2010, 11:50 | ||||||
| Ну, наверное формула другая... а нужно
Но, думаю, что это чрезчур неверно. Количество сочетаний это исключительно целое число. Если определить otv как целое, то
При достаточно больших m и n будет переполнение разрядной сетки при вычислении факториала. Тут для вычисления лучше подойдёт формула (n-m+1)(m+2)...(n-1)n C:=----------------------------- 1*2*3*...(m-1)m И деление организовать целочисленное (DIV). Цикл будет примерно таким
|
| Автор: LoveMeCozImBLONDE 30.5.2010, 22:58 |
| По идее студенты то какбы пронумерованы, потому та формула для количества комбинаций не прокатит) з.ы. ето вроде бы) |
| Автор: otshelnik9 31.5.2010, 16:23 |
| LoveMeCozImBLONDE прокатит так как грубо говоря в програме есть просто 2 числа и оно должно вывести результат... Я предварительно расчитал вручную... Если n=4 а m=2 то результат должен выйти 6, о ткогда программа подсчитает правильно значит она работает... Добавлено через 33 секунды ФедосеевПавел спасибо теперь всё работает...) |