Если ограничения вашей проблемы не приведут к особенно умному и очень неочевидному решению, я полагаю, что вы задаете чрезвычайно сложный вопрос, который был бы в состоянии исследовательской математики.
Во-первых, подсчет просто простых неограниченных разделений целого числа (то есть подсчет числа различимых, не зависящих от порядка способов представления целого числа в виде суммы натуральных чисел) представляет собой глубокую математическую проблему с историей, насчитывающей сотни лет. ,
http://en.wikipedia.org/wiki/Partition_%28number_theory%29#Partition_function_formulas
У вас есть некоторые дополнительные неортодоксальные ограничения - во-первых, вам нужно только подмножество разделов с заданным количеством терминов (что может облегчить это), а затем, я полагаю, ограничение на XOR двоичного файла представление терминов, с которыми, вероятно, будет очень трудно справиться.
Насколько большой ты намереваешься быть? Ссылка выше говорит, что р (1000) примерно 2,44 * 10 ^ 31.
Если n большое, вы также верите, что c будет маленьким? Это сильно упростит ситуацию.
Чтобы решить вашу проблему, вам нужно заинтересовать научного математика, специализирующегося в этой области.
www.aimath.org / Новости / раздела /
Вы можете попробовать Math Overflow, используя в качестве ключевого слова "Разделы".
Я нашел эту ветку о разделении точно на c (они используют 'k' для этой части) отдельных частей, что является первым (более легким) вашим ограничением.
https://mathoverflow.net/questions/72418/what-are-the-best-known-bounds-on-the-number-of-partitions-of-n-into-exactly-k