В общем дали задание по программированию в следующем виде:
Определить число способов, которыми можно рассадить N учащихся за M столами при N<=2M, если за каждым столом могут разместиться 2 учащихся.
Сам никогда не занимался комбинаторикой, но насколько я понял, нужно использовать неупорядоченные выборки без возвращения:

Переменная k будет равняться постоянно 2, а n будет базироваться от числа учеников, каждый раз сбавляя его на 2, а полученные результаты складываться. Но я в этом не уверен, и хотел бы спросить у вас, правильно ли это или нужно по-другому (если не верно, то как поступить?). И еще - что делать, если есть "лишние" пустые столы, а всех учеников уже рассадили?